FlexATRFlexATR: A Dynamic Multi-Timeframe Trading Strategy
Overview: FlexATR is a versatile trading strategy that dynamically adapts its key parameters based on the timeframe being used. It combines technical signals from exponential moving averages (EMAs) and the Relative Strength Index (RSI) with volatility-based risk management via the Average True Range (ATR). This approach helps filter out false signals while adjusting to varying market conditions — whether you’re trading on a daily chart, intraday charts (30m, 60m, or 5m), or even on higher timeframes like the 4-hour or weekly charts.
How It Works:
Multi-Timeframe Parameter Adaptation: FlexATR is designed to automatically adjust its indicator settings depending on the timeframe:
Daily and Weekly: On higher timeframes, the strategy uses longer periods for the fast and slow EMAs and standard periods for RSI and ATR to capture more meaningful trend confirmations while minimizing noise.
Intraday (e.g., 30m, 60m, 5m, 4h): The parameters are converted from “days” into the corresponding number of bars. For instance, on a 30-minute chart, a “day” might equal 48 bars. The preset values for a 30-minute chart have been slightly reduced (e.g., a fast EMA is set at 0.35 days instead of 0.4) to improve reactivity while maintaining robust filtering.
Signal Generation:
Entry Signals: The strategy enters long positions when the fast EMA crosses above the slow EMA and the RSI is above 50, and it enters short positions when the fast EMA crosses below the slow EMA with the RSI below 50. This dual confirmation helps ensure that signals are reliable.
Risk Management: The ATR is used to compute dynamic levels for stop loss and profit target:
Stop Loss: For a long position, the stop loss is placed at Price - (ATR × Stop Loss Multiplier). For a short position, it is at Price + (ATR × Stop Loss Multiplier).
Profit Target: The profit target is similarly set using the ATR multiplied by a designated profit multiplier.
Dynamic Trailing Stop: FlexATR further incorporates a dynamic trailing stop (if enabled) that adjusts according to the ATR. This trailing stop follows favorable price movements at a distance defined by a multiplier, locking in gains as the trend develops. The use of a trailing stop helps protect profits without requiring a fixed exit point.
Capital Allocation: Each trade is sized at 10% of the total equity. This percentage-based position sizing allows the strategy to scale with your account size. While the current setup assumes no leverage (a 1:1 exposure), the inherent design of the strategy means you can adjust the leverage externally if desired, with risk metrics scaling accordingly.
Visual Representation: For clarity and accessibility (especially for those with color vision deficiencies), FlexATR employs a color-blind friendly palette (the Okabe-Ito palette):
EMA Fast: Displayed in blue.
EMA Slow: Displayed in orange.
Stop Loss Levels: Rendered in vermilion.
Profit Target Levels: Shown in a distinct azzurro (light blue).
Benefits and Considerations:
Reliability: By requiring both EMA crossovers and an RSI confirmation, FlexATR filters out a significant amount of market noise, which reduces false signals at the expense of some delayed entries.
Adaptability: The automatic conversion of “day-based” parameters into bar counts for intraday charts means the strategy remains consistent across different timeframes.
Risk Management: Using the ATR for both fixed and trailing stops allows the strategy to adapt to changing market volatility, helping to protect your capital.
Flexibility: The strategy’s inputs are customizable via the input panel, allowing traders to fine-tune the parameters for different assets or market conditions.
Conclusion: FlexATR is designed as a balanced, adaptive strategy that emphasizes reliability and robust risk management across a variety of timeframes. While it may sometimes enter trades slightly later due to its filtering mechanism, its focus on confirming trends helps reduce the likelihood of false signals. This makes it particularly attractive for traders who prioritize a disciplined, multi-timeframe approach to capturing market trends.
Komut dosyalarını "Trailing stop" için ara
Profit Hunter @DaviddTechProfit Hunter @DaviddTech is an advanced multi-strategy indicator designed to give traders a significant edge in identifying high-probability trading opportunities across all market conditions. By combining the power of T3 adaptive moving averages, ADX-based trend strength analysis, SuperTrend trailing stops, and dynamic support/resistance detection, this indicator delivers a complete trading system in one powerful package.
## 📊 Recommended Usage
Timeframes: Most effective on 1H, 4H, and Daily charts for swing trading; 5M and 15M for day trading
Markets: Works across all markets including Forex, Crypto, Indices, and Stocks
Setup Guidelines: Look for T3 crossovers with strong ADX readings (>25) coinciding with breakout signals (yellow dots/red crosses) near key support/resistance levels for highest probability entries
## 🔥 Key Features:
### T3 Adaptive Trend Detection:
Utilizes premium T3 adaptive indicators instead of standard EMAs for superior smoothing and accuracy
Dynamic color-shifting cloud formation between fast and slow T3 lines reveals immediate trend direction
Proprietary transparency algorithm intensifies cloud colors during strong trends based on real-time ADX readings
### Advanced Support & Resistance Mapping:
Automatically identifies and marks key market structure levels during T3 crossovers
Dynamic horizontal level plotting with optional extension for monitoring future price interactions
Intelligent level validation - converts to dotted lines when price breaks through, maintaining visual clarity
### SuperTrend Trailing Stoploss System:
Professional-grade white trailing stop indicator adapts to market volatility using ATR calculations
Generates precise entry and exit signals with optional buy/sell labels at critical reversal points
Visual trend state highlighting for immediate assessment of current market position
### Breakout Detection & Confirmation:
Sophisticated dual-algorithm breakout system combining Bollinger Bands and Keltner Channels
Visual breakout alerts with yellow dots (bullish) and red crosses (bearish) for instant pattern recognition
Validates breakouts against T3 trend direction to minimize false signals
### Alpha Edge Color System:
Utilizes DaviddTech's signature color scheme with bullish green and bearish pink
Revolutionary transparency algorithm translates ADX readings into precise visual intensity
Higher ADX values produce more vivid colors, instantly communicating trend strength without additional indicators
## 💰 Trading Applications:
Alpha Discovery: Identify emerging trends before the majority of market participants
Precision Entry/Exit: Use SuperTrend signals combined with support/resistance levels for optimal trade execution
Risk Management: Set stops based on the white trailing stoploss line for mathematically-optimized protection
Trend Confirmation: Validate setups using the T3 cloud direction and ADX-based intensity
Breakout Trading: Capture explosive moves with confirmed Bollinger/Keltner breakout signals
Swing Position Management: Monitor extended support/resistance levels for multi-day positioning
## ✨ Strategy Example
As shown in the chart image, ideal entries occur when:
The T3 cloud turns bullish (green) or bearish (pink) with strong color intensity
A yellow dot (bullish) or red cross (bearish) breakout signal appears
Price respects the white SuperTrend line as support/resistance
The trade aligns with key horizontal support/resistance levels identified by the indicator
## 📝 Attribution
This indicator builds upon and enhances concepts from:
Market Trend Levels Detector by BigBeluga (support/resistance detection framework)
T3 indicator implementation by DaviddTech (adaptive moving average system)
Average Directional Index (ADX) methodology for trend strength measurement
Profit Hunter @DaviddTech represents the culmination of advanced technical analysis methodologies in one seamless system.
Sunil High-Frequency Strategy with Simple MACD & RSISunil High-Frequency Strategy with Simple MACD & RSI
This high-frequency trading strategy uses a combination of MACD and RSI to identify quick market opportunities. By leveraging these indicators, combined with dynamic risk management using ATR, it aims to capture small but frequent price movements while ensuring tight control over risk.
Key Features:
Indicators Used:
MACD (Moving Average Convergence Divergence): The strategy uses a shorter MACD configuration (Fast Length of 6 and Slow Length of 12) to capture quick price momentum shifts. A MACD crossover above the signal line triggers a buy signal, while a crossover below the signal line triggers a sell signal.
RSI (Relative Strength Index): A shorter RSI length of 7 is used to gauge overbought and oversold market conditions. The strategy looks for RSI confirmation, with a long trade initiated when RSI is below the overbought level (70) and a short trade initiated when RSI is above the oversold level (30).
Risk Management:
Dynamic Stop Loss and Take Profit: The strategy uses ATR (Average True Range) to calculate dynamic stop loss and take profit levels based on market volatility.
Stop Loss is set at 0.5x ATR to limit risk.
Take Profit is set at 1.5x ATR to capture reasonable price moves.
Trailing Stop: As the market moves in the strategy’s favor, the position is protected by a trailing stop set at 0.5x ATR, allowing the strategy to lock in profits as the price moves further.
Entry & Exit Signals:
Long Entry: Triggered when the MACD crosses above the signal line (bullish crossover) and RSI is below the overbought level (70).
Short Entry: Triggered when the MACD crosses below the signal line (bearish crossover) and RSI is above the oversold level (30).
Exit Conditions: The strategy exits long or short positions based on the stop loss, take profit, or trailing stop activation.
Frequent Trades:
This strategy is designed for high-frequency trading, with trade signals occurring frequently as the MACD and RSI indicators react quickly to price movements. It works best on lower timeframes such as 1-minute, 5-minute, or 15-minute charts, but can be adjusted for different timeframes based on the asset’s volatility.
Customizable Parameters:
MACD Settings: Adjust the Fast Length, Slow Length, and Signal Length to tune the MACD’s sensitivity.
RSI Settings: Customize the RSI Length, Overbought, and Oversold levels to better match your trading style.
ATR Settings: Modify the ATR Length and multipliers for Stop Loss, Take Profit, and Trailing Stop to optimize risk management according to market volatility.
Important Notes:
Market Conditions: This strategy is designed to capture smaller, quicker moves in trending markets. It may not perform well during choppy or sideways markets.
Optimizing for Asset Volatility: Adjust the ATR multipliers based on the asset’s volatility to suit the risk-reward profile that fits your trading goals.
Backtesting: It's recommended to backtest the strategy on different assets and timeframes to ensure optimal performance.
Summary:
The Sunil High-Frequency Strategy leverages a simple combination of MACD and RSI with dynamic risk management (using ATR) to trade small but frequent price movements. The strategy ensures tight stop losses and reasonable take profits, with trailing stops to lock in profits as the price moves in favor of the trade. It is ideal for scalping or intraday trading on lower timeframes, aiming for quick entries and exits with controlled risk.
Dual Strategy Selector V2 - CryptogyaniOverview:
This script provides traders with a dual-strategy system that they can toggle between using a simple dropdown menu in the input settings. It is designed to cater to different trading styles and needs, offering both simplicity and advanced filtering techniques. The strategies are built around moving average crossovers, enhanced by configurable risk management tools like take profit levels, trailing stops, and ATR-based stop-loss.
Key Features:
Two Strategies in One Script:
Strategy 1: A classic moving average crossover strategy for identifying entry signals based on trend reversals. Includes user-defined take profit and trailing stop-loss options for profit locking.
Strategy 2: An advanced trend-following system that incorporates:
A higher timeframe trend filter to confirm entry signals.
ATR-based stop-loss for dynamic risk management.
Configurable partial take profit to secure gains while letting the trade run.
Highly Customizable:
All key parameters such as SMA lengths, take profit levels, ATR multiplier, and timeframe for the trend filter are adjustable via the input settings.
Dynamic Toggle:
Traders can switch between Strategy 1 and Strategy 2 with a single dropdown, allowing them to adapt the strategy to market conditions.
How It Works:
Strategy 1:
Entry Logic: A long trade is triggered when the fast SMA crosses above the slow SMA.
Exit Logic: The trade exits at either a user-defined take profit level (percentage or pips) or via an optional trailing stop that dynamically adjusts based on price movement.
Strategy 2:
Entry Logic: Builds on the SMA crossover logic but adds a higher timeframe trend filter to align trades with the broader market direction.
Risk Management:
ATR-Based Stop-Loss: Protects against adverse moves with a volatility-adjusted stop-loss.
Partial Take Profit: Allows traders to secure a percentage of gains while keeping some exposure for extended trends.
How to Use:
Select Your Strategy:
Use the dropdown in the input settings to choose Strategy 1 or Strategy 2.
Configure Parameters:
Adjust SMA lengths, take profit, and risk management settings to align with your trading style.
For Strategy 2, specify the higher timeframe for trend filtering.
Deploy and Monitor:
Apply the script to your preferred asset and timeframe.
Use the backtest results to fine-tune settings for optimal performance.
Why Choose This Script?:
This script stands out due to its dual-strategy flexibility and enhanced features:
For beginners: Strategy 1 provides a simple yet effective trend-following system with minimal setup.
For advanced traders: Strategy 2 includes powerful tools like trend filters and ATR-based stop-loss, making it ideal for challenging market conditions.
By combining simplicity with advanced features, this script offers something for everyone while maintaining full transparency and user customization.
Default Settings:
Strategy 1:
Fast SMA: 21, Slow SMA: 49
Take Profit: 7% or 50 pips
Trailing Stop: Optional (disabled by default)
Strategy 2:
Fast SMA: 20, Slow SMA: 50
ATR Multiplier: 1.5
Partial Take Profit: 50%
Higher Timeframe: 1 Day (1D)
Uptrick: Imbalance MA Trailing System
### **Overview**
The "Uptrick: Imbalance MA Trailing System" is a complex trading indicator designed to help traders identify potential bullish and bearish imbalances in the market, coupled with a trailing stop mechanism to manage trades. The indicator uses a combination of moving averages, Average True Range (ATR), and custom logic to detect trading signals and plot various levels on the chart to assist traders in making informed decisions.
### **Key Components and Functionality**
#### 1. **Inputs and Configuration**
- **Imbalance Filter (`imbalanceFilter`)**: This input sets the filter for detecting imbalances based on the difference between two price points. The value is a float and can be adjusted to fine-tune the sensitivity of imbalance detection. The default value is `0.0`, with a step size of `0.1`.
- **Moving Average Settings (`maLength1`, `maLength2`, `maColor1`, `maColor2`)**:
- `maLength1` and `maLength2` define the lengths of the two moving averages used in the indicator. By default, they are set to `50` and `200` periods, respectively.
- `maColor1` and `maColor2` specify the colors of these moving averages on the chart. The first MA is colored blue, and the second is red.
- **Take Profit and Stop Loss Settings (`displayTP`, `tpMultiplier`, `tpColor`, `displaySL`, `slMultiplier`, `slColor`)**:
- `displayTP` and `displaySL` are boolean inputs that control whether the TP and SL areas are displayed on the chart.
- `tpMultiplier` and `slMultiplier` are multipliers used to calculate the TP and SL levels relative to the detected imbalance level using the ATR value.
- `tpColor` and `slColor` define the colors of these areas. The TP area is green (with a transparency of 50), and the SL area is red (with a transparency of 50).
- **Trailing Stop Settings (`trailMultiplier`)**: This setting determines the multiplier used to calculate the trailing stop level based on the ATR value. The default multiplier is `2.5`.
- **Style Settings (`bullishColor`, `bearishColor`)**:
- `bullishColor` and `bearishColor` set the colors for bullish and bearish zones created when an imbalance is detected. The bullish zone is green, and the bearish zone is red.
- **Signal Label Size (`labelSizeOption`)**: The size of the signal labels displayed on the chart can be adjusted. The options include `Tiny`, `Small`, `Normal`, `Large`, and `Huge`. The selected size affects the visual prominence of the labels.
#### 2. **ATR Calculation (`atrValue`)**
- The ATR value is calculated using a period of 14, which is a standard setting for measuring market volatility. This value is used extensively throughout the indicator to calculate TP, SL, and trailing stop levels.
#### 3. **Imbalance Detection and Zone Creation**
- The indicator detects potential imbalances in the market by comparing certain price points, using a custom function (`imbalanceCondition`).
- **Bullish Imbalance Detection (`bullishSignal`)**:
- A bullish imbalance is detected when the low of three bars ago is higher than the high of one bar ago, and the current close is above the low of three bars ago.
- Additional conditions include checking that the current close is above the calculated average of the two moving averages (`ma1` and `ma2`), and that the imbalance exceeds the threshold set by the `imbalanceFilter`.
- **Bearish Imbalance Detection (`bearishSignal`)**:
- A bearish imbalance is detected under conditions where the low of one bar ago is higher than the high of three bars ago, and the current close is below the high of three bars ago.
- Like the bullish signal, the close must also be below the average of the two moving averages, and the imbalance must exceed the `imbalanceFilter` threshold.
- Upon detection of an imbalance (either bullish or bearish), the indicator creates a zone using `box.new` that highlights the price range of the imbalance. The box color corresponds to the bullish or bearish nature of the signal.
- The center of the imbalance range is marked with a dashed line, and a corresponding label (`🔴` for bearish and `🟢` for bullish) is placed on the chart to indicate the detected signal.
#### 4. **Take Profit and Stop Loss Calculation (`calculateTPSL`)**
- When an imbalance is detected, the indicator calculates potential TP and SL levels based on the ATR value and the respective multipliers.
- If the TP or SL areas are enabled, the indicator plots these areas as colored boxes on the chart.
- The function also tracks whether these levels are hit by subsequent price action, updating the status (`reached`) as appropriate.
#### 5. **Trailing Stop Logic (`applyTrailingStop`)**
- The trailing stop feature is a dynamic mechanism that adjusts the stop level as the price moves in the trader's favor.
- The trailing stop is calculated using the ATR value multiplied by the `trailMultiplier`.
- If the trailing stop is triggered (i.e., the price crosses the trailing stop level), the indicator marks the trade as stopped out.
#### 6. **Plotting and Visualization**
- The indicator plots the two moving averages on the chart with the specified colors and line width.
- If a trailing stop is active, it plots the trailing stop level on the chart, updating as the stop moves.
- The bar color changes based on the status of the current signal and whether the trailing stop or TP/SL levels have been hit.
### **Detailed Execution Flow**
1. **Initialization**: The indicator initializes several variables, including lines, boxes, and the current signal state. This setup ensures that the script can dynamically update these elements as new price data comes in.
2. **Moving Average Calculation**: The moving averages (`ma1` and `ma2`) are calculated using simple moving average (SMA) functions, which are foundational for many of the indicator's conditions.
3. **Imbalance Detection**: The script evaluates price action to detect potential bullish or bearish imbalances, applying filters based on the user-defined `imbalanceFilter`.
4. **Zone Creation and Labeling**: Upon detecting an imbalance, the script creates visual zones on the chart using the `box.new` function and labels the zones for easy identification.
5. **Take Profit and Stop Loss Logic**: The TP and SL areas are calculated and plotted if the relevant settings are enabled. The script continuously checks if these levels are reached as new bars form.
6. **Trailing Stop Calculation**: The script dynamically adjusts the trailing stop level based on the price movement and ATR value. The trailing stop helps lock in profits as the trade progresses.
7. **Plotting**: The moving averages, trailing stop levels, and bar colors are plotted on the chart, providing a visual representation of the indicator's signals and trade management levels.
8. **Final Checks and Updates**: The script concludes each bar's processing by updating the status of various elements, such as whether levels have been reached or if the trailing stop has been triggered.
### **Conclusion**
The "Uptrick: Imbalance MA Trailing System" is a highly versatile indicator designed for traders who want to identify market imbalances and manage their trades effectively using a combination of moving averages, ATR-based calculations, and custom logic. The indicator offers a wide range of customization options, allowing traders to adjust the sensitivity of imbalance detection, the size of the signal labels, and the visibility of various trade management levels (TP, SL, and trailing stop).
The combination of these features makes it a powerful tool for both novice and experienced traders, providing clear visual cues and robust trade management capabilities directly on the chart.
Trend Confirmation StrategyThe profitability and uniqueness of a trading strategy depend on various factors including market conditions, risk management, and the strategy's ability to capitalize on price movements. I'll describe the strategy provided and highlight its potential benefits and differences compared to other strategies:
Strategy Overview:
The provided strategy combines three technical indicators: Supertrend, MACD, and VWAP. It aims to identify potential entry and exit points by confirming trend direction and considering the proximity to the VWAP level. The strategy also incorporates stop-loss and take-profit mechanisms, as well as a trailing stop.
Unique Aspects and Potential Benefits:
Trend Confirmation: The strategy uses both Supertrend and MACD to confirm the trend direction. This dual confirmation can increase the likelihood of accurate trend identification and filter out false signals.
VWAP Confirmation: The strategy considers the proximity of the price to the VWAP level. This dynamic level can act as a support or resistance and provide additional context for entry decisions.
Adaptive Stop Loss: The strategy sets a stop-loss range, which helps provide some tolerance for minor price fluctuations. This adaptive approach considers market volatility and helps prevent premature stop-loss triggers.
Trailing Stop: The strategy incorporates a trailing stop mechanism to lock in profits as the trade moves in the desired direction. This can potentially enhance profitability during strong trends.
Partial Profit Booking: While not explicitly implemented in the provided code, you could consider booking partial profits when the MACD shows a crossover in the opposite direction. This aspect could help secure gains while still keeping exposure to potential further price movements.
Key Differences from Other Strategies:
Dual Indicator Confirmation: The combination of Supertrend and MACD for trend confirmation is a unique aspect of this strategy. It adds an extra layer of filtering to enhance the accuracy of entry signals.
Dynamic VWAP: Incorporating the VWAP level into the decision-making process adds a dynamic element to the strategy. VWAP is often used by institutional traders, and its inclusion can provide insights into the market sentiment.
Adaptive Stop Loss and Trailing: The strategy's use of an adaptive stop-loss range and a trailing stop can help manage risk and protect profits more effectively during changing market conditions.
Partial Profit Booking: The suggestion to consider partial profit booking upon MACD crossovers in the opposite direction is a practical approach to secure gains while staying in the trade.
Caution and Considerations:
Backtesting: Before deploying any strategy in real trading, it's crucial to thoroughly backtest it on historical data to understand its performance under various market conditions.
Risk Management: While the strategy has built-in risk management mechanisms, it's essential to carefully manage position sizes and overall portfolio risk.
Market Conditions: No strategy works well in all market conditions. It's important to be flexible and adjust the strategy or refrain from trading during particularly volatile or unpredictable periods.
Continuous Monitoring: Even though the strategy includes automated components, continuous monitoring of the trades and market conditions is necessary.
Adaptability: Markets can change over time. Traders need to be prepared to adapt the strategy as necessary to stay aligned with evolving market dynamics.
Backtests Are BrokenThis script demonstrates a fatal flaw with Trading View backtests involving trailing stops. Trading View assumes the most optimistic case for trailing stops, always giving you the best case high/low of a bar instead of the worst or average case. Within a bar, the price could reverse against your position after the open and trigger your trailing stop for a loss before the price goes in your favor, but Trading View backtests do not consider this and instead always give you the best case returns. This allows a trivial strategy to appear as though it would perform miracles.
This strategy enters on a random bar and sets a trailing stop triggered one tick better than the current price with 0 trailing distance. Trading View then generously gives this strategy the difference between the open price and best possible wick as a profit. The only way this strategy can lose money in simulation is if the price goes straight down after entry and never retraces. It works on all symbols on all timeframes due to this systematic problem with the Trading View backtester.
My exponential moving averages - Suri's EMAs
It's not an indication of anything here, it's just part of my operating in a simple and summarized way, I hope it helps someone.
Suri's EMA's indicator is nothing more than a set of exponential moving averages (EMA). They are 12, 26, 50 and 200.
Attention to the use of the indicator, it is just an INDICATOR, it should not be taken as the main point of your entry, but to guide you in your entries in favor of the trend, whether intra-day or swing.
Created for clear, monochrome screens. Make your adjustments.
Color condition, candles turn green when their close is above EMA 12 and 26.
Color condition, candles turn red when their close is below EMA 12 and 26.
Condition for colors, MME12,26,50 and 200 will turn green with price working above it.
Condition for colors, MME12, 26, 50 and 200 will turn red with price working below it.
Indication for use in time-frames = 5m, 15m, 60m, 240m. (higher hit rates)
How to use the indicator, MME 12 and 26, are the most important and led you to more entries, but we should not only consider them, we have to analyze the whole context to then make a decision.
Indicator was nicknamed by me by "Pullback Pick", it works in a simple way:
In an uptrend or downtrend, the price usually tends to return in the averages or the averages go up to the price, that being said, it is easy to observe that where the price returns would be a pullback from the last movement, so when returning to the averages, the candle that shows strength in favor of this trend, in the EMA's region, becomes a possible entry, with its stop below or above this "pullback" formed, because the stop goes there, because usually when the price returns on the EMAs they tend to to hold and replay the price in favor of the trend.
My observations:
I like to enter when the price returns to the averages smoothly, without much movement, when it touches the average 12 or 26 it is an entry, but an entry without confirmation, the gain is greater, but the chance of being stopped is higher, I like it when the price is close to the 12 and 26 averages and leaves a small candle or doji on this pullback, my entry goes to the breakout of this candle and the stop behind the candle.
THERE IS NO MIRACLE, THERE IS NO 100% HIT RATE, SO USE STOP.
Aaaaaaaaaa I was forgetting.... and the target???
As it is a trend following setup, it is cool to leave a trailing stop or update the stop as new bottoms or tops are formed.
Targeting in 1v1 is good, setup pays a lot!
Targeting in 2x1 is too good, setup pays well!
Making a target in 3x1 is more than good, setup pays sometimes, then from now on, it depends on where you are entering this "PULLBACK", if it is in the first wave, in the second, if you are going to lateralize, the market is SOVEREIGN, put in the pocket that is no longer on the market, oh it's yours!
That's it, doubts, send it there, suggestion, opinion, whatever you want.
Added a symbol at the crossing of the 12 and 26 moving averages.
I am so sorry, but i dont speak english, use google translate.
Português.
Não se trata de indicação de nada aqui, é apenas parte do meu operacional de maneira simples e resumida, espero que ajude alguém.
Indicador Suri's EMA's, nada mais é do que um conjunto de médias móveis exponenciais(MME). São elas 12, 26, 50 e 200.
Atenção para o uso do indicador, ele é apenas um INDICADOR, não deve ser tomado como o ponto principal de sua entrada, mas sim de te balizar nas suas entradas a favor da tendência, seja ela intra-day ou swing.
Criado para telas claras e monocromáticas. Façam seus ajustes.
Condição para as cores, candles ficam verdes quando o fechamento dele é acima das MME 12 e 26.
Condição para as cores, candles ficam vermelhos quando o fechamento dele é abaixo das MME 12 e 26.
Condição para as cores, MME12,26,50 e 200 ficará verde com preço trabalhando acima dela.
Condição para as cores, MME12, 26, 50 e 200 ficará vermelho com preço trabalhando abaixo dela.
Indicação para uso nos time-frame = 5m, 15m, 60m, 240m.(taxas de acerto maior)
Como utilizar o indicador, MME 12 e 26, são as mais importantes e te levaram a mais entradas, porém não devemos levar apenas elas em consideração, temos que analisar todo o contexto para então tomar decisão.
Indicador foi apelidado por mim por " Pega Pullback", ele funciona de uma maneira simples:
Em tendência de alta ou de baixa, o preço geralmente tende a retornar nas médias ou as médias irem até o preço, dito isso é fácil de se observar que onde o preço retorna seria um pullback do último movimento, portanto ao retornar nas médias, o candle que mostra força a favor dessa tendência, na região das EMA's, se torna uma possível entrada, com o seu stop abaixo ou acima desse "pullback" formado, porque o stop vai nesse local, porque geralmente quando o preço retorna nas EMAs elas tendem a segurar e voltar a jogar o preço a favor da tendência.
Minhas observações:
Eu gosto de entrar quando o preço retorna nas médias de maneira suave, sem muito movimento, quando toca na média 12 ou 26 é uma entrada, porém uma entrada sem confirmação, o ganho é maior, porém a chance de ser stopado é mais alta, eu gosto quando o preço fica perto das médias 12 e 26 e deixa um candle pequeno ou doji nesse pullback, minha entrada vai no rompimento desse candle e o stop atrás do candle.
Não existe MILAGRE, NÃO EXISTE TAXA DE ACERTO DE 100%, POR ISSO USE STOP.
Aaaaaaaaaa ia me esquecendo.... e o alvo???
Por ser um setup seguidor de tendência, o legal é deixar um trailing stop ou ir atualizando o stop conforme novos fundos ou topos são formados.
Realizar alvo no 1x1 é bom, setup paga muito!
Realizar alvo no 2x1 é bom de mais, setup paga bem!
Realizar alvo no 3x1 é mais do que bom, setup paga as vezes, ai daqui pra frente, depende de onde você está entrando nesse "PULLBACK", se é na primeira onda, na segunda, se vai lateralizar, o mercado é SOBERANO, põe no bolso que não é mais do mercado, ai é teu!
É isso, dúvidas, manda ai, sugestão, opinião, o que quiser.
Adicionado um símbolo no cruzamento das médias móveis 12 e 26.
Supertrend - Ladder ATRThis is a supertrend with slight twisted concept which can be very benefecial in strong trending markets to reduce stop loss distance and exit slightly quicker.
⬜ Concept
▶ When the instrument is trending up, regular ATR shows high values if there are big green candles. This affect the stoploss distance in regular supertrend which leads to wide stops or delayed lagging. When you are in long trade, what matters for stoploss is how much a negative candle can move within bar. Hence, using ATR derived only based on red candles is more beneficial for trailing stops on long signals. Same applies to short trades where using ATR derived from only green candles is more efficient than overall ATR.
▶ ATR will be minimal when the volatility is less and ATR will increase with volatility. That means, once you are in trade, the trailing of stoploss also will vary based on ATR (or volatility). With regular ATR and supertrend, chances of stop loss distance widening is high with increased volatility even though stoploss levels will not move down. This again poses the risk of higher drawdown during trade closure and also keeps in the trade during ranging market. To avoid this, the second trick we are using here is only to reduce the atr stoploss difference when in trade. That is, when in long trade and negative candles ATR is increasing, we will not consider that. We will consider the new ATR only if it is lesser than previous bar ATR.
Effect of these changes on the trending market is quite visual. Lets take example of USDTRY
Settings are quite simple and does not vary much from regular supertrend settings.
On Balance Volume with CrossOBV indicator with a few key changes that can turn it into a filter or trading indicator as-is.
Volume calculation given a look-back to help clarify trends without smoothing lag
Change the source (HLC3 indicates a little faster in backtesting)
Smooth the signal if desired
Moving average (MA) added for crossover indication in trend change
MA can be either EMA or HMA**
** My personal use:
EMA for trend filtering trades: Trade long signals if OBV is above the MA, trade short signals if OBV is below the MA.
HMA for scalping and chop: Normally set the HMA to 20 or 15 and trade the crosses. Works on most time frames and generates a lot of noise. 5 min and 15 min seems best for me in day trading
Example of trend trading using only the OBV-C and no other indicators, stops, or trailing stops:
This could obviously be improved using stops, trailing stops, or other indicators to filter when to enter & exit trades or mitigate loss.
Example of trading using the HMA and lower time frames with Elder's Force Index (EFI) used as a filter. Trade with both cross at or very near the same time. Winning trades in green:
ATR Stoploss Lines - Minimize Risk | Maximize ProfitThe ATR Stoploss is best used as a trailing stop. While actively managing your trades, move your stops up as price increases/decreases.
There is an offset of 1 candle, so the ATR will only be based on closed candles. This prevents you from moving your stop's when you really shouldn't.
The top lines are used for short positions and the bottom lines are used for long positions.
You can adjust the distance of the ATR lines from your candles by changing the multiplier in the settings.
You may want to increase the multiplier to 2-3 on less volatile assets, and keep it ~1.75 for volatile assets like BTC.
Feel free to reach out if you need any tips or more help with using these. Just remember, this indicator should only be used to manage your trades, not enter them.
Bober XM v2.0# ₿ober XM v2.0 Trading Bot Documentation
**Developer's Note**: While our previous Bot 1.3.1 was removed due to guideline violations, this setback only fueled our determination to create something even better. Rising from this challenge, Bober XM 2.0 emerges not just as an update, but as a complete reimagining with multi-timeframe analysis, enhanced filters, and superior adaptability. This adversity pushed us to innovate further and deliver a strategy that's smarter, more agile, and more powerful than ever before. Challenges create opportunity - welcome to Cryptobeat's finest work yet.
## !!!!You need to tune it for your own pair and timeframe and retune it periodicaly!!!!!
## Overview
The ₿ober XM v2.0 is an advanced dual-channel trading bot with multi-timeframe analysis capabilities. It integrates multiple technical indicators, customizable risk management, and advanced order execution via webhook for automated trading. The bot's distinctive feature is its separate channel systems for long and short positions, allowing for asymmetric trade strategies that adapt to different market conditions across multiple timeframes.
### Key Features
- **Multi-Timeframe Analysis**: Analyze price data across multiple timeframes simultaneously
- **Dual Channel System**: Separate parameter sets for long and short positions
- **Advanced Entry Filters**: RSI, Volatility, Volume, Bollinger Bands, and KEMAD filters
- **Machine Learning Moving Average**: Adaptive prediction-based channels
- **Multiple Entry Strategies**: Breakout, Pullback, and Mean Reversion modes
- **Risk Management**: Customizable stop-loss, take-profit, and trailing stop settings
- **Webhook Integration**: Compatible with external trading bots and platforms
### Strategy Components
| Component | Description |
|---------|-------------|
| **Dual Channel Trading** | Uses either Keltner Channels or Machine Learning Moving Average (MLMA) with separate settings for long and short positions |
| **MLMA Implementation** | Machine learning algorithm that predicts future price movements and creates adaptive bands |
| **Pivot Point SuperTrend** | Trend identification and confirmation system based on pivot points |
| **Three Entry Strategies** | Choose between Breakout, Pullback, or Mean Reversion approaches |
| **Advanced Filter System** | Multiple customizable filters with multi-timeframe support to avoid false signals |
| **Custom Exit Logic** | Exits based on OBV crossover of its moving average combined with pivot trend changes |
### Note for Novice Users
This is a fully featured real trading bot and can be tweaked for any ticker — SOL is just an example. It follows this structure:
1. **Indicator** – gives the initial signal
2. **Entry strategy** – decides when to open a trade
3. **Exit strategy** – defines when to close it
4. **Trend confirmation** – ensures the trade follows the market direction
5. **Filters** – cuts out noise and avoids weak setups
6. **Risk management** – controls losses and protects your capital
To tune it for a different pair, you'll need to start from scratch:
1. Select the timeframe (candle size)
2. Turn off all filters and trend entry/exit confirmations
3. Choose a channel type, channel source and entry strategy
4. Adjust risk parameters
5. Tune long and short settings for the channel
6. Fine-tune the Pivot Point Supertrend and Main Exit condition OBV
This will generate a lot of signals and activity on the chart. Your next task is to find the right combination of filters and settings to reduce noise and tune it for profitability.
### Default Strategy values
Default values are tuned for: Symbol BITGET:SOLUSDT.P 5min candle
Filters are off by default: Try to play with it to understand how it works
## Configuration Guide
### General Settings
| Setting | Description | Default Value |
|---------|-------------|---------------|
| **Long Positions** | Enable or disable long trades | Enabled |
| **Short Positions** | Enable or disable short trades | Enabled |
| **Risk/Reward Area** | Visual display of stop-loss and take-profit zones | Enabled |
| **Long Entry Source** | Price data used for long entry signals | hl2 (High+Low/2) |
| **Short Entry Source** | Price data used for short entry signals | hl2 (High+Low/2) |
The bot allows you to trade long positions, short positions, or both simultaneously. Each direction has its own set of parameters, allowing for fine-tuned strategies that recognize the asymmetric nature of market movements.
### Multi-Timeframe Settings
1. **Enable Multi-Timeframe Analysis**: Toggle 'Enable Multi-Timeframe Analysis' in the Multi-Timeframe Settings section
2. **Configure Timeframes**: Set appropriate higher timeframes based on your trading style:
- Timeframe 1: Default is now 15 minutes (intraday confirmation)
- Timeframe 2: Default is 4 hours (trend direction)
3. **Select Sources per Indicator**: For each indicator (RSI, KEMAD, Volume, etc.), choose:
- The desired timeframe (current, mtf1, or mtf2)
- The appropriate price type (open, high, low, close, hl2, hlc3, ohlc4)
### Entry Strategies
- **Breakout**: Enter when price breaks above/below the channel
- **Pullback**: Enter when price pulls back to the channel
- **Mean Reversion**: Enter when price is extended from the channel
You can enable different strategies for long and short positions.
### Core Components
### Risk Management
- **Position Size**: Control risk with percentage-based position sizing
- **Stop Loss Options**:
- Fixed: Set a specific price or percentage from entry
- ATR-based: Dynamic stop-loss based on market volatility
- Swing: Uses recent swing high/low points
- **Take Profit**: Multiple targets with percentage allocation
- **Trailing Stop**: Dynamic stop that follows price movement
## Advanced Usage Strategies
### Moving Average Type Selection Guide
- **SMA**: More stable in choppy markets, good for higher timeframes
- **EMA/WMA**: More responsive to recent price changes, better for entry signals
- **VWMA**: Adds volume weighting for stronger trends, use with Volume filter
- **HMA**: Balance between responsiveness and noise reduction, good for volatile markets
### Multi-Timeframe Strategy Approaches
- **Trend Confirmation**: Use higher timeframe RSI (mtf2) for overall trend, current timeframe for entries
- **Entry Precision**: Use KEMAD on current timeframe with volume filter on mtf1
- **False Signal Reduction**: Apply RSI filter on mtf1 with strict KEMAD settings
### Market Condition Optimization
| Market Condition | Recommended Settings |
|------------------|----------------------|
| **Trending** | Use Breakout strategy with KEMAD filter on higher timeframe |
| **Ranging** | Use Mean Reversion with strict RSI filter (mtf1) |
| **Volatile** | Increase ATR multipliers, use HMA for moving averages |
| **Low Volatility** | Decrease noise parameters, use pullback strategy |
## Webhook Integration
The strategy features a professional webhook system that allows direct connectivity to your exchange or trading platform of choice through third-party services like 3commas, Alertatron, or Autoview.
The webhook payload includes all necessary parameters for automated execution:
- Entry price and direction
- Stop loss and take profit levels
- Position size
- Custom identifier for webhook routing
## Performance Optimization Tips
1. **Start with Defaults**: Begin with the default settings for your timeframe before customizing
2. **Adjust One Component at a Time**: Make incremental changes and test the impact
3. **Match MA Types to Market Conditions**: Use appropriate moving average types based on the Market Condition Optimization table
4. **Timeframe Synergy**: Create logical relationships between timeframes (e.g., 5min chart with 15min and 4h higher timeframes)
5. **Periodic Retuning**: Markets evolve - regularly review and adjust parameters
## Common Setups
### Crypto Trend-Following
- MLMA with EMA or HMA
- Higher RSI thresholds (75/25)
- KEMAD filter on mtf1
- Breakout entry strategy
### Stock Swing Trading
- MLMA with SMA for stability
- Volume filter with higher threshold
- KEMAD with increased filter order
- Pullback entry strategy
### Forex Scalping
- MLMA with WMA and lower noise parameter
- RSI filter on current timeframe
- Use highest timeframe for trend direction only
- Mean Reversion strategy
## Webhook Configuration
- **Benefits**:
- Automated trade execution without manual intervention
- Immediate response to market conditions
- Consistent execution of your strategy
- **Implementation Notes**:
- Requires proper webhook configuration on your exchange or platform
- Test thoroughly with small position sizes before full deployment
- Consider latency between signal generation and execution
### Backtesting Period
Define a specific historical period to evaluate the bot's performance:
| Setting | Description | Default Value |
|---------|-------------|---------------|
| **Start Date** | Beginning of backtest period | January 1, 2025 |
| **End Date** | End of backtest period | December 31, 2026 |
- **Best Practice**: Test across different market conditions (bull markets, bear markets, sideways markets)
- **Limitation**: Past performance doesn't guarantee future results
## Entry and Exit Strategies
### Dual-Channel System
A key innovation of the Bober XM is its dual-channel approach:
- **Independent Parameters**: Each trade direction has its own channel settings
- **Asymmetric Trading**: Recognizes that markets often behave differently in uptrends versus downtrends
- **Optimized Performance**: Fine-tune settings for both bullish and bearish conditions
This approach allows the bot to adapt to the natural asymmetry of markets, where uptrends often develop gradually while downtrends can be sharp and sudden.
### Channel Types
#### 1. Keltner Channels
Traditional volatility-based channels using EMA and ATR:
| Setting | Long Default | Short Default |
|---------|--------------|---------------|
| **EMA Length** | 37 | 20 |
| **ATR Length** | 13 | 17 |
| **Multiplier** | 1.4 | 1.9 |
| **Source** | low | high |
- **Strengths**:
- Reliable in trending markets
- Less prone to whipsaws than Bollinger Bands
- Clear visual representation of volatility
- **Weaknesses**:
- Can lag during rapid market changes
- Less effective in choppy, non-trending markets
#### 2. Machine Learning Moving Average (MLMA)
Advanced predictive model using kernel regression (RBF kernel):
| Setting | Description | Options |
|---------|-------------|--------|
| **Source MA** | Price data used for MA calculations | Any price source (low/high/close/etc.) |
| **Moving Average Type** | Type of MA algorithm for calculations | SMA, EMA, WMA, VWMA, RMA, HMA |
| **Trend Source** | Price data used for trend determination | Any price source (close default) |
| **Window Size** | Historical window for MLMA calculations | 5+ (default: 16) |
| **Forecast Length** | Number of bars to forecast ahead | 1+ (default: 3) |
| **Noise Parameter** | Controls smoothness of prediction | 0.01+ (default: ~0.43) |
| **Band Multiplier** | Multiplier for channel width | 0.1+ (default: 0.5-0.6) |
- **Strengths**:
- Predictive rather than reactive
- Adapts quickly to changing market conditions
- Better at identifying trend reversals early
- **Weaknesses**:
- More computationally intensive
- Requires careful parameter tuning
- Can be sensitive to input data quality
### Entry Strategies
| Strategy | Description | Ideal Market Conditions |
|----------|-------------|-------------------------|
| **Breakout** | Enters when price breaks through channel bands, indicating strong momentum | High volatility, emerging trends |
| **Pullback** | Enters when price retraces to the middle band after testing extremes | Established trends with regular pullbacks |
| **Mean Reversion** | Enters at channel extremes, betting on a return to the mean | Range-bound or oscillating markets |
#### Breakout Strategy (Default)
- **Implementation**: Enters long when price crosses above the upper band, short when price crosses below the lower band
- **Strengths**: Captures strong momentum moves, performs well in trending markets
- **Weaknesses**: Can lead to late entries, higher risk of false breakouts
- **Optimization Tips**:
- Increase channel multiplier for fewer but more reliable signals
- Combine with volume confirmation for better accuracy
#### Pullback Strategy
- **Implementation**: Enters long when price pulls back to middle band during uptrend, short during downtrend pullbacks
- **Strengths**: Better entry prices, lower risk, higher probability setups
- **Weaknesses**: Misses some strong moves, requires clear trend identification
- **Optimization Tips**:
- Use with trend filters to confirm overall direction
- Adjust middle band calculation for market volatility
#### Mean Reversion Strategy
- **Implementation**: Enters long at lower band, short at upper band, expecting price to revert to the mean
- **Strengths**: Excellent entry prices, works well in ranging markets
- **Weaknesses**: Dangerous in strong trends, can lead to fighting the trend
- **Optimization Tips**:
- Implement strong trend filters to avoid counter-trend trades
- Use smaller position sizes due to higher risk nature
### Confirmation Indicators
#### Pivot Point SuperTrend
Combines pivot points with ATR-based SuperTrend for trend confirmation:
| Setting | Default Value |
|---------|---------------|
| **Pivot Period** | 25 |
| **ATR Factor** | 2.2 |
| **ATR Period** | 41 |
- **Function**: Identifies significant market turning points and confirms trend direction
- **Implementation**: Requires price to respect the SuperTrend line for trade confirmation
#### Weighted Moving Average (WMA)
Provides additional confirmation layer for entries:
| Setting | Default Value |
|---------|---------------|
| **Period** | 15 |
| **Source** | ohlc4 (average of Open, High, Low, Close) |
- **Function**: Confirms trend direction and filters out low-quality signals
- **Implementation**: Price must be above WMA for longs, below for shorts
### Exit Strategies
#### On-Balance Volume (OBV) Based Exits
Uses volume flow to identify potential reversals:
| Setting | Default Value |
|---------|---------------|
| **Source** | ohlc4 |
| **MA Type** | HMA (Options: SMA, EMA, WMA, RMA, VWMA, HMA) |
| **Period** | 22 |
- **Function**: Identifies divergences between price and volume to exit before reversals
- **Implementation**: Exits when OBV crosses its moving average in the opposite direction
- **Customizable MA Type**: Different MA types provide varying sensitivity to OBV changes:
- **SMA**: Traditional simple average, equal weight to all periods
- **EMA**: More weight to recent data, responds faster to price changes
- **WMA**: Weighted by recency, smoother than EMA
- **RMA**: Similar to EMA but smoother, reduces noise
- **VWMA**: Factors in volume, helpful for OBV confirmation
- **HMA**: Reduces lag while maintaining smoothness (default)
#### ADX Exit Confirmation
Uses Average Directional Index to confirm trend exhaustion:
| Setting | Default Value |
|---------|---------------|
| **ADX Threshold** | 35 |
| **ADX Smoothing** | 60 |
| **DI Length** | 60 |
- **Function**: Confirms trend weakness before exiting positions
- **Implementation**: Requires ADX to drop below threshold or DI lines to cross
## Filter System
### RSI Filter
- **Function**: Controls entries based on momentum conditions
- **Parameters**:
- Period: 15 (default)
- Overbought level: 71
- Oversold level: 23
- Multi-timeframe support: Current, MTF1 (15min), or MTF2 (4h)
- Customizable price source (open, high, low, close, hl2, hlc3, ohlc4)
- **Implementation**: Blocks long entries when RSI > overbought, short entries when RSI < oversold
### Volatility Filter
- **Function**: Prevents trading during excessive market volatility
- **Parameters**:
- Measure: ATR (Average True Range)
- Period: Customizable (default varies by timeframe)
- Threshold: Adjustable multiplier
- Multi-timeframe support
- Customizable price source
- **Implementation**: Blocks trades when current volatility exceeds threshold × average volatility
### Volume Filter
- **Function**: Ensures adequate market liquidity for trades
- **Parameters**:
- Threshold: 0.4× average (default)
- Measurement period: 5 (default)
- Moving average type: Customizable (HMA default)
- Multi-timeframe support
- Customizable price source
- **Implementation**: Requires current volume to exceed threshold × average volume
### Bollinger Bands Filter
- **Function**: Controls entries based on price relative to statistical boundaries
- **Parameters**:
- Period: Customizable
- Standard deviation multiplier: Adjustable
- Moving average type: Customizable
- Multi-timeframe support
- Customizable price source
- **Implementation**: Can require price to be within bands or breaking out of bands depending on strategy
### KEMAD Filter (Kalman EMA Distance)
- **Function**: Advanced trend confirmation using Kalman filter algorithm
- **Parameters**:
- Process Noise: 0.35 (controls smoothness)
- Measurement Noise: 24 (controls reactivity)
- Filter Order: 6 (higher = more smoothing)
- ATR Length: 8 (for bandwidth calculation)
- Upper Multiplier: 2.0 (for long signals)
- Lower Multiplier: 2.7 (for short signals)
- Multi-timeframe support
- Customizable visual indicators
- **Implementation**: Generates signals based on price position relative to Kalman-filtered EMA bands
## Risk Management System
### Position Sizing
Automatically calculates position size based on account equity and risk parameters:
| Setting | Default Value |
|---------|---------------|
| **Risk % of Equity** | 50% |
- **Implementation**:
- Position size = (Account equity × Risk %) ÷ (Entry price × Stop loss distance)
- Adjusts automatically based on volatility and stop placement
- **Best Practices**:
- Start with lower risk percentages (1-2%) until strategy is proven
- Consider reducing risk during high volatility periods
### Stop-Loss Methods
Multiple stop-loss calculation methods with separate configurations for long and short positions:
| Method | Description | Configuration |
|--------|-------------|---------------|
| **ATR-Based** | Dynamic stops based on volatility | ATR Period: 14, Multiplier: 2.0 |
| **Percentage** | Fixed percentage from entry | Long: 1.5%, Short: 1.5% |
| **PIP-Based** | Fixed currency unit distance | 10.0 pips |
- **Implementation Notes**:
- ATR-based stops adapt to changing market volatility
- Percentage stops maintain consistent risk exposure
- PIP-based stops provide precise control in stable markets
### Trailing Stops
Locks in profits by adjusting stop-loss levels as price moves favorably:
| Setting | Default Value |
|---------|---------------|
| **Stop-Loss %** | 1.5% |
| **Activation Threshold** | 2.1% |
| **Trailing Distance** | 1.4% |
- **Implementation**:
- Initial stop remains fixed until profit reaches activation threshold
- Once activated, stop follows price at specified distance
- Locks in profit while allowing room for normal price fluctuations
### Risk-Reward Parameters
Defines the relationship between risk and potential reward:
| Setting | Default Value |
|---------|---------------|
| **Risk-Reward Ratio** | 1.4 |
| **Take Profit %** | 2.4% |
| **Stop-Loss %** | 1.5% |
- **Implementation**:
- Take profit distance = Stop loss distance × Risk-reward ratio
- Higher ratios require fewer winning trades for profitability
- Lower ratios increase win rate but reduce average profit
### Filter Combinations
The strategy allows for simultaneous application of multiple filters:
- **Recommended Combinations**:
- Trending markets: RSI + KEMAD filters
- Ranging markets: Bollinger Bands + Volatility filters
- All markets: Volume filter as minimum requirement
- **Performance Impact**:
- Each additional filter reduces the number of trades
- Quality of remaining trades typically improves
- Optimal combination depends on market conditions and timeframe
### Multi-Timeframe Filter Applications
| Filter Type | Current Timeframe | MTF1 (15min) | MTF2 (4h) |
|-------------|-------------------|-------------|------------|
| RSI | Quick entries/exits | Intraday trend | Overall trend |
| Volume | Immediate liquidity | Sustained support | Market participation |
| Volatility | Entry timing | Short-term risk | Regime changes |
| KEMAD | Precise signals | Trend confirmation | Major reversals |
## Visual Indicators and Chart Analysis
The bot provides comprehensive visual feedback on the chart:
- **Channel Bands**: Keltner or MLMA bands showing potential support/resistance
- **Pivot SuperTrend**: Colored line showing trend direction and potential reversal points
- **Entry/Exit Markers**: Annotations showing actual trade entries and exits
- **Risk/Reward Zones**: Visual representation of stop-loss and take-profit levels
These visual elements allow for:
- Real-time strategy assessment
- Post-trade analysis and optimization
- Educational understanding of the strategy logic
## Implementation Guide
### TradingView Setup
1. Load the script in TradingView Pine Editor
2. Apply to your preferred chart and timeframe
3. Adjust parameters based on your trading preferences
4. Enable alerts for webhook integration
### Webhook Integration
1. Configure webhook URL in TradingView alerts
2. Set up receiving endpoint on your trading platform
3. Define message format matching the bot's output
4. Test with small position sizes before full deployment
### Optimization Process
1. Backtest across different market conditions
2. Identify parameter sensitivity through multiple tests
3. Focus on risk management parameters first
4. Fine-tune entry/exit conditions based on performance metrics
5. Validate with out-of-sample testing
## Performance Considerations
### Strengths
- Adaptability to different market conditions through dual channels
- Multiple layers of confirmation reducing false signals
- Comprehensive risk management protecting capital
- Machine learning integration for predictive edge
### Limitations
- Complex parameter set requiring careful optimization
- Potential over-optimization risk with so many variables
- Computational intensity of MLMA calculations
- Dependency on proper webhook configuration for execution
### Best Practices
- Start with conservative risk settings (1-2% of equity)
- Test thoroughly in demo environment before live trading
- Monitor performance regularly and adjust parameters
- Consider market regime changes when evaluating results
## Conclusion
The ₿ober XM v2.0 represents a significant evolution in trading strategy design, combining traditional technical analysis with machine learning elements and multi-timeframe analysis. The core strength of this system lies in its adaptability and recognition of market asymmetry.
### Market Asymmetry and Adaptive Approach
The strategy acknowledges a fundamental truth about markets: bullish and bearish phases behave differently and should be treated as distinct environments. The dual-channel system with separate parameters for long and short positions directly addresses this asymmetry, allowing for optimized performance regardless of market direction.
### Targeted Backtesting Philosophy
It's counterproductive to run backtests over excessively long periods. Markets evolve continuously, and strategies that worked in previous market regimes may be ineffective in current conditions. Instead:
- Test specific market phases separately (bull markets, bear markets, range-bound periods)
- Regularly re-optimize parameters as market conditions change
- Focus on recent performance with higher weight than historical results
- Test across multiple timeframes to ensure robustness
### Multi-Timeframe Analysis as a Game-Changer
The integration of multi-timeframe analysis fundamentally transforms the strategy's effectiveness:
- **Increased Safety**: Higher timeframe confirmations reduce false signals and improve trade quality
- **Context Awareness**: Decisions made with awareness of larger trends reduce adverse entries
- **Adaptable Precision**: Apply strict filters on lower timeframes while maintaining awareness of broader conditions
- **Reduced Noise**: Higher timeframe data naturally filters market noise that can trigger poor entries
The ₿ober XM v2.0 provides traders with a framework that acknowledges market complexity while offering practical tools to navigate it. With proper setup, realistic expectations, and attention to changing market conditions, it delivers a sophisticated approach to systematic trading that can be continuously refined and optimized.
ATR Stop-Loss & TargetsATR and Supertrend-based SL/TP & Trailing System
This indicator combines Average True Range (ATR) and Supertrend logic to help traders define precise stop-loss, first target, and trailing stop-loss (TSL) levels.
⚙️ Key Features:
📏 ATR-based Stop-Loss & Target Lines:
Uses ATR (default period: 5) based on the previous day's candle for more stable risk management.
Traders can choose the price source: Close, Open, or enter a manual price.
SL and first target are calculated using multipliers:
Multiplier 1 = Stop Loss
Multiplier 2 = First Target
📉 Supertrend for Trailing Stop:
Built-in Supertrend logic for trailing stop-loss management.
Uses ATR(10) with a multiplier of 2.1, based on HL2.
Supertrend can be toggled ON/OFF from the settings.
Multi-Timeframe Parabolic SAR Strategy ver 1.0Multi-Timeframe Parabolic SAR Strategy (MTF PSAR) - Enhanced Trend Trading
This strategy leverages the power of the Parabolic SAR (Stop and Reverse) indicator across multiple timeframes to provide robust trend identification, precise entry/exit signals, and dynamic trailing stop management. By combining the insights of both the current chart's timeframe and a user-defined higher timeframe, this strategy aims to improve trading accuracy, reduce risk, and capture more significant market moves.
Key Features:
Dual Timeframe Analysis: Simultaneously analyzes the Parabolic SAR on the current chart and a higher timeframe (e.g., Daily PSAR on a 1-hour chart). This allows you to align your trades with the dominant trend and filter out noise from lower timeframes.
Configurable PSAR: Fine-tune the PSAR calculation with adjustable Start, Increment, and Maximum values to optimize sensitivity for your trading style and the asset's volatility.
Independent Timeframe Control: Choose to display and trade based on either or both the current timeframe PSAR and the higher timeframe PSAR. Focus on the most relevant information for your analysis.
Clear Visual Signals: Distinct colors for the current and higher timeframe PSAR dots provide a clear visual representation of potential entry and exit points.
Multiple Entry Strategies: The strategy offers flexible entry conditions, allowing you to trade based on:
Confirmation: Both current and higher timeframe PSAR signals agree and the current timeframe PSAR has just flipped direction. (Most conservative)
Current Timeframe Only: Trades based solely on the current timeframe PSAR, ideal for when the higher timeframe is less relevant or disabled.
Higher Timeframe Only: Trades based solely on the higher timeframe PSAR.
Dynamic Trailing Stop (PSAR-Based): Implements a trailing stop-loss based on the current timeframe's Parabolic SAR. This helps protect profits by automatically adjusting the stop-loss as the price moves in your favor. Exits are triggered when either the current or HTF PSAR flips.
No Repainting: Uses lookahead=barmerge.lookahead_off in the security() function to ensure that the higher timeframe data is accessed without any data leakage, preventing repainting issues.
Fully Configurable: All parameters (PSAR settings, higher timeframe, visibility, colors) are adjustable through the strategy's settings panel, allowing for extensive customization and optimization.
Suitable for Various Trading Styles: Applicable to swing trading, day trading, and trend-following strategies across various markets (stocks, forex, cryptocurrencies, etc.).
How it Works:
PSAR Calculation: The strategy calculates the standard Parabolic SAR for both the current chart's timeframe and the selected higher timeframe.
Trend Identification: The direction of the PSAR (dots below price = uptrend, dots above price = downtrend) determines the current trend for each timeframe.
Entry Signals: The strategy generates buy/sell signals based on the chosen entry strategy (Confirmation, Current Timeframe Only, or Higher Timeframe Only). The Confirmation strategy offers the highest probability signals by requiring agreement between both timeframes.
Trailing Stop Exit: Once a position is entered, the strategy uses the current timeframe PSAR as a dynamic trailing stop. The stop-loss is automatically adjusted as the PSAR dots move, helping to lock in profits and limit losses. The strategy exits when either the Current or HTF PSAR changes direction.
Backtesting and Optimization: The strategy automatically backtests on the chart's historical data, allowing you to evaluate its performance and optimize the settings for different assets and timeframes.
Example Use Cases:
Trend Confirmation: A trader on a 1-hour chart observes a bullish PSAR flip on the current timeframe. They check the MTF PSAR strategy and see that the Daily PSAR is also bullish, confirming the strength of the uptrend and providing a high-probability long entry signal.
Filtering Noise: A trader on a 5-minute chart wants to avoid whipsaws caused by short-term price fluctuations. They use the strategy with a 1-hour higher timeframe to filter out noise and only trade in the direction of the dominant trend.
Dynamic Risk Management: A trader enters a long position and uses the current timeframe PSAR as a trailing stop. As the price rises, the PSAR dots move upwards, automatically raising the stop-loss and protecting profits. The trade is exited when the current (or HTF) PSAR flips to bearish.
Disclaimer:
The Parabolic SAR is a lagging indicator and can produce false signals, particularly in ranging or choppy markets. This strategy is intended for educational and informational purposes only and should not be considered financial advice. It is essential to backtest and optimize the strategy thoroughly, use it in conjunction with other technical analysis tools, and implement sound risk management practices before using it with real capital. Past performance is not indicative of future results. Always conduct your own due diligence and consider your risk tolerance before making any trading decisions.
Catalyst TrendCatalyst Trend – A Comprehensive Trend and Regime Analyzer
The Catalyst Trend indicator was designed to dynamically and intuitively merge various classic analytical techniques. The goal is to filter out short-term market noise and reveal reliable trend phases or potential turning points. Below is a detailed explanation of its core elements and practical usage.
1. Concept and Idea
Multidimensional Trend Detection
This indicator goes beyond a simple momentum or volatility focus. It factors in multiple measurements to provide a more well-rounded market perspective.
Versatile Indicator Fusion
Linear Regression (LinReg): Multiple LinReg calculations are combined to smooth out price fluctuations and produce a robust trendline—known here as the “Cycle Reduced Line.”
ADX (Average Directional Index): Measures trend strength.
RSI (Relative Strength Index): Flags potential overbought or oversold conditions, in both the current timeframe and a higher timeframe.
ATR (Average True Range): Assesses volatility; used to dynamically adjust calculation lengths.
By weaving these elements together, the indicator adds value beyond simply stacking multiple indicators. It adapts to real-time market conditions, aiming to highlight genuine trends and reduce false signals.
2. Key Functions and Calculations
Dynamic Length & Smoothing
A blend of volatility (ATR), ADX values, and RSI inputs determines how many candles are used in the LinReg calculations and how heavily the data is smoothed.
This allows the indicator to respond promptly during periods of high volatility, while automatically adjusting to filter out unnecessary noise in quieter phases.c
Cycle Reduced Line
The script averages several offset LinReg calculations to produce a cleaner overall signal. Random outliers are thus minimized, making the trend path more visually consistent.
An additional EMA smoothing (“Final Smoothing”) further stabilizes this trendline, reducing the impact of minor price fluctuations.
Channel Bands (Optional)
These bands are derived from the standard deviation of the price residual (the difference between the smoothed price and the trendline).
They highlight potential over-extension zones: the upper band can mark short-term overbought areas, while the lower band might indicate oversold conditions.
Trend and Sideways Determination
Slope Calculation: The slope of the trendline (comparing the current bar to the previous one) helps identify short-term directional shifts.
DX Threshold: Once the ADX surpasses a user-defined threshold and the slope is positive, it may indicate a developing uptrend. Similarly, if the slope is negative and ADX > threshold, it could signal a potential downtrend.
Multi-Level Color Coding
Original Mode: Interpolated colors reflect uptrends, downtrends, and sideways phases, factoring in metrics like ADX and RSI.
Single Color: For a neutral look, the indicator can be displayed in one uniform color.
HTF RSI: This mode uses the higher-timeframe RSI to color the trendline (Long/Short/Neutral), offering a quick gauge of overarching market pressure.
3. Use Cases and Interpretation
Timeframes & Markets
The indicator is versatile and adapts well to different intervals, from 5-minute charts to weekly views.
It can be applied to various markets—crypto, forex, stocks—since volatility and trend strength are universal concepts.
Signal Recognition
Color Swings into a more pronounced upward hue (e.g., green) may signal mounting strength.
Neutral or mixed tones often point to sideways phases, which breakout traders might watch for potential price surges.
A shift to downward colors (e.g., red) may indicate a growing bearish trend.
Channel Bands & Volatility
When the bands spread widely, it’s wise to proceed with caution: abrupt spikes above the upper band or below the lower band can flag rapid short-term extremes.
These bands are more of a reference for potential overextension than a strict buy or sell trigger.
Additional Confirmations
Not a standalone panacea: The Catalyst Trend indicator is an analytical tool, best used alongside other methods such as volume analysis or price action (candlestick patterns, support/resistance levels) to bolster confidence in trading decisions.
4. Practical Tips
Parameter Adjustments
Depending on the market—crypto vs. traditional currency pairs—different ADX, RSI, or smoothing periods may be more effective. Experiment with the settings to tailor the indicator to your preferred timeframe.
Strategic Integration
Trailing Stops: For those riding a trend, the trendline or the channel bands may serve as a reference to trail stop-loss orders.
Trend Confirmation: Using RSI and ADX filters can help traders avoid sideways markets or stay the course when the trend is strong.
5. Important Final Notes
No Guarantee of Profits
No indicator can predict the future. Markets are inherently volatile and often unpredictable.
Responsible Risk Management
Test the indicator in a demo environment or with smaller positions before committing to large trades.
Martingale with MACD+KDJ opening conditionsStrategy Overview:
This strategy is based on a Martingale trading approach, incorporating MACD and KDJ indicators. It features pyramiding, trailing stops, and dynamic profit-taking mechanisms, suitable for both long and short trades. The strategy increases position size progressively using a Multiplier, a key feature of Martingale systems.
Key Concepts:
Martingale Strategy: A trading system where positions are doubled or increased after a loss to recover previous losses with a single successful trade. In this script, the position size is incremented using a Multiplier for each addition.
Pyramiding: Allows adding to existing trades when market conditions are favorable, enhancing profitability during trends.
Settings:
Basic Inputs:
Initial Order: Defines the starting size of the position.
Default: 150.0
MACD Settings: Customize the fast, slow, and signal smoothing lengths.
Default: Fast Length: 9, Slow Length: 26, Signal Smoothing: 9
KDJ Settings: Customize the length and smoothing parameters for KDJ.
Default: Length: 14, Smooth K: 3, Smooth D: 3
Max Additions: Sets the number of additional positions (pyramiding).
Default: 5 (Min: 1, Max: 10)
Position Sizing: Percent to add to positions on favorable conditions.
Default: 1.0%
Martingale Multiplier:
Add Multiplier: This value controls the scaling of additional positions according to the Martingale principle. After each loss, a new position is added, and its size is increased by the Multiplier factor. For example, with a multiplier of 2, each new addition will be twice as large as the previous one, accelerating recovery if the price moves favorably.
Default: 1.0 (no multiplication)
Can be adjusted up to 10x to aggressively increase position size after losses.
Trade Execution:
Long Trades:
Entry Condition: A long position is opened when the MACD line crosses over the signal line, and the KDJ’s %K crosses above %D.
Additions (Martingale): After the initial long position, new positions are added if the price drops by the defined percentage, and each new addition is increased using the Multiplier. This continues up to the set Max Additions.
Short Trades:
Entry Condition: A short position is opened when the MACD line crosses under the signal line, and the KDJ’s %K crosses below %D.
Additions (Martingale): After the initial short position, new positions are added if the price rises by the defined percentage, and each new addition is increased using the Multiplier.
Exit Conditions:
Take Profit: Exits are triggered when the price reaches the take-profit threshold.
Stop Loss: If the price moves unfavorably, the position will be closed at the set stop-loss level.
Trailing Stop: Adjusts dynamically as the price moves in favor of the trade to lock in profits.
On-Chart Visuals:
Long Signals: Blue triangles below the bars indicate long entries, and green triangles mark additional long positions.
Short Signals: Red triangles above the bars indicate short entries, and orange triangles mark additional short positions.
Information Table:
The strategy displays a table with key metrics:
Open Price: The entry price of the trade.
Average Price: The average price of the current position.
Additions: The number of additional positions taken.
Next Add Price: The price level for the next position.
Take Profit: The price at which profits will be taken.
Stop Loss: The stop-loss level to minimize risk.
Usage Instructions:
Adjust the parameters to your trading style using the input settings.
The Multiplier amplifies your position size after each addition, so use it cautiously, especially in volatile markets.
Monitor the signals and table on the chart for entry/exit decisions and trade management.
NASDAQ 100 Peak Hours StrategyNASDAQ 100 Peak Hours Trading Strategy
Description
Our NASDAQ 100 Peak Hours Trading Strategy leverages a carefully designed algorithm to trade within specific hours of high market activity, particularly focusing on the first two hours of the trading session from 09:30 AM to 11:30 AM GMT-5. This period is identified for its increased volatility and liquidity, offering numerous trading opportunities.
The strategy incorporates a blend of technical indicators to identify entry and exit points for both long and short positions. These indicators include:
Exponential Moving Averages (EMAs) : A short-term 9-period EMA and a longer-term 21-period EMA to determine the market trend and momentum.
Relative Strength Index (RSI) : A 14-period RSI to gauge the market's momentum.
Average True Range (ATR) : A 14-period ATR to assess market volatility and to set dynamic stop losses and trailing stops.
Volume Weighted Average Price (VWAP) : To identify the market's average price weighted by volume, serving as a benchmark for the trading day.
Our strategy uniquely applies a volatility filter using the ATR, ensuring trades are only executed in conditions that favor our setup. Additionally, we consider the direction of the EMAs to confirm the market's trend before entering trades.
Originality and Usefulness
This strategy stands out by combining these indicators within the NASDAQ 100's peak hours, exploiting the specific market conditions that prevail during these times. The inclusion of a volatility filter and dynamic stop-loss mechanisms based on the ATR provides a robust method for managing risk.
By focusing on the early trading hours, the strategy aims to capture the initial market movements driven by overnight news and the opening rush, often characterized by higher volatility. This approach is particularly useful for traders looking to maximize gains from short-term fluctuations while limiting exposure to longer-term market uncertainty.
Strategy Results
To ensure the strategy's effectiveness and reliability, it has undergone rigorous backtesting over a significant dataset to produce a sample size of more than 100 trades. This testing phase helps in identifying the strategy's potential in various market conditions, its consistency, and its risk-to-reward ratio.
Our backtesting adheres to realistic trading conditions, accounting for slippage and commission to reflect actual trading scenarios accurately. The strategy is designed with a conservative approach to risk management, advising not to risk more than 5-10% of equity on a single trade. The default settings in the script align with these principles, ensuring that users can replicate our tested conditions.
Using the Strategy
The strategy is designed for simplicity and ease of use:
Trade Hours : Focuses on 09:30 AM to 11:30 AM GMT-5, during the NASDAQ 100's peak activity hours.
Entry Conditions : Trades are initiated based on the alignment of EMAs, RSI, VWAP, and the ATR's volatility filter within the designated time frame.
Exit Conditions : Includes dynamic trailing stops based on ATR, a predefined time exit strategy, and a trend reversal exit condition for risk management.
This script is a powerful tool for traders looking to leverage the NASDAQ 100's peak hours, providing a structured approach to navigating the early market hours with a robust set of criteria for making informed trading decisions.
Logical Trading Indicator V.1Features of the Logical Trading Indicator V.1
ATR-Based Trailing Stop Loss
The Logical Trading Indicator V.1 utilizes the Average True Range (ATR) to implement a dynamic trailing stop loss. You can customize the sensitivity of your alerts by adjusting the ATR Multiple and ATR Period settings.
Higher ATR Multiple values create wider stops, while lower values result in tighter stops. This feature ensures that your trades are protected against adverse price movements. For best practice, use higher values on higher timeframes and lower values on lower term timeframes.
Bollinger Bands
The Logical Trading Indicator V.1 includes Bollinger Bands, which can be customized to use either a Simple Moving Average (SMA) or an Exponential Moving Average (EMA) as the basis.
You can adjust the length and standard deviation multiplier of the Bollinger Bands to fine-tune your strategy. The color of the basis line changes to green when price is above and red when price is below the line to represent the trend.
The bands show a range vs a single band that also represents when the price is in overbought and oversold ranges similar to an RSI. These bands also control the take profit signals.
You also have the ability to change the band colors as well as toggle them off, which only affects the view, they are still active which will still fire the take profit signals.
Momentum Indicator
Our indicator offers a momentum filter option that highlights market momentum directly on the candlesticks, identifying periods of bullish, bearish, or consolidation phases. You can enable or disable this filter as needed, providing valuable insights into market conditions.
By default, you will see the candlestick colors represent the momentum direction as green or red, and consolidation periods as white, but the filter on the BUY and SELL signals is not active. The view options and filter can be toggled on and off in the settings.
Buy and Sell Signals
The Logical Trading Indicator V.1 generates buy and sell signals based on a combination of ATR-based filtering, Bollinger Band basis crossover, and optional momentum conditions if selected in the settings. These signals help you make informed decisions about when to enter or exit a trade. You can also enable a consolidation filter to stay out of trades during tight ranges.
Basically a BUY signal fires when the price closes above the basis line, and the price meets or exceeds the ATR multiple from the previous candle length, which is also editable in the settings.
If the momentum filter is engaged, it will not fire BUY signals when in consolidation periods. It works just the opposite for SELL signals.
Take Profit Signals
We've integrated a Take Profit feature that helps you identify points to exit your trades with profits. The indicator marks Long Take Profit when prices close below the upper zone line of the Bollinger Bands after the previous candle closes inside the band, suggesting an optimal point to exit a long trade or consider a short position.
Conversely, Short Take Profit signals appear when prices close above the lower zone after the previous candle closes inside of it, indicating the right time to exit a short trade or contemplate a long position.
Alerts for Informed Trading
The Logical Trading Indicator V.1 comes equipped with alert conditions for buy signals, sell signals, take profit points, and more. Receive real-time notifications to your preferred devices or platforms to stay updated on market movements and trading opportunities.
Supertrend Targets [ChartPrime]The Supertrend Targets indicator combines the concepts of trend-following with dynamic volatility-based target levels. It takes core simple and classical concepts and provides actionable insights. The core of this indicator revolves around the "Supertrend" algorithm, which essentially uses the Average True Range (ATR) and a multiplier to determine if the price of a financial instrument is in an uptrend or downtrend. The indicator generates various plot points on the trading chart, which traders can use to make informed trading decisions.
Users can set several input parameters such as the source price, custom levels, multiplier scale, length of the average true range, and the window length. Traders can also opt to enable a table that shows numeric target data by percentiles, risk ratio, take profit and stop loss points.
The generated plots and fills on the chart represent various levels of potential gains and drawdowns, acting as potential targets for taking profit or stopping losses. These include the 25th, 50th, 75th, 90th, and 100th percentiles, which are adjustable by scale. There are also plots for average gain and drawdown levels, enhanced by standard deviation curves if enabled.
The Supertrend line indicators are color-coded for ease of understanding: blue for bullish performance and orange for bearish performance. The "Center Line" represents the point at which traders might consider entering a position.
Lastly, the script presents a summary table (when enabled) at the right side of the chart displaying numeric data of the plotted targets. This data provides additional insights on the risk-reward balance for each percentile, helping traders to execute their strategies more effectively.
Here's a comprehensive breakdown of its functionalities and features:
Inputs:
Source: Determines the price series type (e.g., Close, Open, High, Low, etc.).
Show Trailing Stop: Option to display the trailing stop on the chart.
Levels: Sets the number of target levels you want to display. Can range from -5 to 5.
Scale: A scaling factor for adjusting targets, can be between 1 to 100.
Window Length: Length for the target computation, determines how many bars will be considered.
Unique: Ensures every data point used in calculations is unique.
Multiplier: Multiplier for the ATR (Average True Range) to compute the SuperTrend.
ATR Length: Period for the ATR computation.
Custom Level: Allows users to set their own levels using various statistics like Average, Average + STDEV, Percentile, or can be disabled.
Percent Rank: Determines the percentile rank for targeting.
Enable Table: Enables or disables a table display.
Methods:
Flag: Identifies bullish and bearish trend reversals.
Target Percent: Determines the expected price movement (both gains and drawdowns) based on historical trend reversals.
Value Percent: Computes the percentage difference between the current price and the entry price during trend reversals.
Plots:
Multiple target lines are plotted on the chart to visualize potential gain and drawdown levels. These levels are adjusted based on user settings. Additionally, the main Supertrend line is plotted to indicate the prevailing trend direction.
Gain Levels: Target levels which show potential upside from the current price.
Drawdown Levels: Target levels which represent potential downside from the current price.
SuperTrend Line: A line that adjusts based on price volatility and trend direction, acting as a dynamic support or resistance.
In conclusion, the "Supertrend Targets " indicator is a powerful tool that combines the principle of trend-following with dynamic targets, providing traders with insights into potential future price movements. The range of customization options allows traders to adapt the indicator to different trading strategies and market conditions.
CNTLibraryLibrary "CNTLibrary"
Custom Functions To Help Code In Pinescript V5
Coded By Christian Nataliano
First Coded In 10/06/2023
Last Edited In 22/06/2023
Huge Shout Out To © ZenAndTheArtOfTrading and his ZenLibrary V5, Some Of The Custom Functions Were Heavily Inspired By Matt's Work & His Pine Script Mastery Course
Another Shout Out To The TradingView's Team Library ta V5
//====================================================================================================================================================
// Custom Indicator Functions
//====================================================================================================================================================
GetKAMA(KAMA_lenght, Fast_KAMA, Slow_KAMA)
Calculates An Adaptive Moving Average Based On Perry J Kaufman's Calculations
Parameters:
KAMA_lenght (int) : Is The KAMA Lenght
Fast_KAMA (int) : Is The KAMA's Fastes Moving Average
Slow_KAMA (int) : Is The KAMA's Slowest Moving Average
Returns: Float Of The KAMA's Current Calculations
GetMovingAverage(Source, Lenght, Type)
Get Custom Moving Averages Values
Parameters:
Source (float) : Of The Moving Average, Defval = close
Lenght (simple int) : Of The Moving Average, Defval = 50
Type (string) : Of The Moving Average, Defval = Exponential Moving Average
Returns: The Moving Average Calculation Based On Its Given Source, Lenght & Calculation Type (Please Call Function On Global Scope)
GetDecimals()
Calculates how many decimals are on the quote price of the current market © ZenAndTheArtOfTrading
Returns: The current decimal places on the market quote price
Truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places © ZenAndTheArtOfTrading
Parameters:
number (float)
decimalPlaces (simple float)
Returns: The given number truncated to the given decimalPlaces
ToWhole(number)
Converts pips into whole numbers © ZenAndTheArtOfTrading
Parameters:
number (float)
Returns: The converted number
ToPips(number)
Converts whole numbers back into pips © ZenAndTheArtOfTrading
Parameters:
number (float)
Returns: The converted number
GetPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period © ZenAndTheArtOfTrading
Parameters:
value1 (float)
value2 (float)
lookback (int)
BarsAboveMA(lookback, ma)
Counts how many candles are above the MA © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are above the MA
BarsBelowMA(lookback, ma)
Counts how many candles are below the MA © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are below the EMA
BarsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many times price recently crossed the EMA
GetPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count) © ZenAndTheArtOfTrading
Parameters:
lookback (int)
direction (int)
Returns: The bar count of how many candles have retraced over the given lookback & direction
GetSwingHigh(Lookback, SwingType)
Check If Price Has Made A Recent Swing High
Parameters:
Lookback (int) : Is For The Swing High Lookback Period, Defval = 7
SwingType (int) : Is For The Swing High Type Of Identification, Defval = 1
Returns: A Bool - True If Price Has Made A Recent Swing High
GetSwingLow(Lookback, SwingType)
Check If Price Has Made A Recent Swing Low
Parameters:
Lookback (int) : Is For The Swing Low Lookback Period, Defval = 7
SwingType (int) : Is For The Swing Low Type Of Identification, Defval = 1
Returns: A Bool - True If Price Has Made A Recent Swing Low
//====================================================================================================================================================
// Custom Risk Management Functions
//====================================================================================================================================================
CalculateStopLossLevel(OrderType, Entry, StopLoss)
Calculate StopLoss Level
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, Defval = na
StopLoss (float) : Is The Custom StopLoss Distance, Defval = 2x ATR Below Close
Returns: Float - The StopLoss Level In Actual Price As A
CalculateStopLossDistance(OrderType, Entry, StopLoss)
Calculate StopLoss Distance In Pips
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
StopLoss (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
Returns: Float - The StopLoss Value In Pips
CalculateTakeProfitLevel(OrderType, Entry, StopLossDistance, RiskReward)
Calculate TakeProfit Level
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, Defval = na
StopLossDistance (float)
RiskReward (float)
Returns: Float - The TakeProfit Level In Actual Price
CalculateTakeProfitDistance(OrderType, Entry, TakeProfit)
Get TakeProfit Distance In Pips
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
TakeProfit (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
Returns: Float - The TakeProfit Value In Pips
CalculateConversionCurrency(AccountCurrency, SymbolCurrency, BaseCurrency)
Get The Conversion Currecny Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
Parameters:
AccountCurrency (simple string) : Is For The Account Currency Used
SymbolCurrency (simple string) : Is For The Current Symbol Currency (Front Symbol)
BaseCurrency (simple string) : Is For The Current Symbol Base Currency (Back Symbol)
Returns: Tuple Of A Bollean (Convert The Currency ?) And A String (Converted Currency)
CalculateConversionRate(ConvertCurrency, ConversionRate)
Get The Conversion Rate Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
Parameters:
ConvertCurrency (bool) : Is To Check If The Current Symbol Needs To Be Converted Or Not
ConversionRate (float) : Is The Quoted Price Of The Conversion Currency (Input The request.security Function Here)
Returns: Float Price Of Conversion Rate (If In The Same Currency Than Return Value Will Be 1.0)
LotSize(LotSizeSimple, Balance, Risk, SLDistance, ConversionRate)
Get Current Lot Size
Parameters:
LotSizeSimple (bool) : Is To Toggle Lot Sizing Calculation (Simple Is Good Enough For Stocks & Crypto, Whilst Complex Is For Forex)
Balance (float) : Is For The Current Account Balance To Calculate The Lot Sizing Based Off
Risk (float) : Is For The Current Risk Per Trade To Calculate The Lot Sizing Based Off
SLDistance (float) : Is The Current Position StopLoss Distance From Its Entry Price
ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
Returns: Float - Position Size In Units
ToLots(Units)
Converts Units To Lots
Parameters:
Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
Returns: Float - Position Size In Lots
ToUnits(Lots)
Converts Lots To Units
Parameters:
Lots (float) : Is For How Many Lots Need To Be Converted Into Units (Minimun 0.01 Units)
Returns: Int - Position Size In Units
ToLotsInUnits(Units)
Converts Units To Lots Than Back To Units
Parameters:
Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
Returns: Float - Position Size In Lots That Were Rounded To Units
ATRTrail(OrderType, SourceType, ATRPeriod, ATRMultiplyer, SwingLookback)
Calculate ATR Trailing Stop
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
SourceType (int) : Is To Determine Where To Calculate The ATR Trailing From, Defval = close
ATRPeriod (simple int) : Is To Change Its ATR Period, Defval = 20
ATRMultiplyer (float) : Is To Change Its ATR Trailing Distance, Defval = 1
SwingLookback (int) : Is To Change Its Swing HiLo Lookback (Only From Source Type 5), Defval = 7
Returns: Float - Number Of The Current ATR Trailing
DangerZone(WinRate, AvgRRR, Filter)
Calculate Danger Zone Of A Given Strategy
Parameters:
WinRate (float) : Is The Strategy WinRate
AvgRRR (float) : Is The Strategy Avg RRR
Filter (float) : Is The Minimum Profit It Needs To Be Out Of BE Zone, Defval = 3
Returns: Int - Value, 1 If Out Of Danger Zone, 0 If BE, -1 If In Danger Zone
IsQuestionableTrades(TradeTP, TradeSL)
Checks For Questionable Trades (Which Are Trades That Its TP & SL Level Got Hit At The Same Candle)
Parameters:
TradeTP (float) : Is The Trade In Question Take Profit Level
TradeSL (float) : Is The Trade In Question Stop Loss Level
Returns: Bool - True If The Last Trade Was A "Questionable Trade"
//====================================================================================================================================================
// Custom Strategy Functions
//====================================================================================================================================================
OpenLong(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue)
Open A Long Order Based On The Given Params
Parameters:
EntryID (string) : Is The Trade Entry ID, Defval = "Long"
LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
Comment (string) : Is The Order Comment, Defval = Long Entry Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
OpenShort(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue)
Open A Short Order Based On The Given Params
Parameters:
EntryID (string) : Is The Trade Entry ID, Defval = "Short"
LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
Comment (string) : Is The Order Comment, Defval = Short Entry Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
TP_SLExit(FromID, TPLevel, SLLevel, PercentageClose, Comment, CommentValue)
Exits Based On Predetermined TP & SL Levels
Parameters:
FromID (string) : Is The Trade ID That The TP & SL Levels Be Palced
TPLevel (float) : Is The Take Profit Level
SLLevel (float) : Is The StopLoss Level
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
CloseLong(ExitID, PercentageClose, Comment, CommentValue, Instant)
Exits A Long Order Based On A Specified Condition
Parameters:
ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Long"
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Instant (bool) : Is For Exit Execution Type, Defval = false
Returns: Void
CloseShort(ExitID, PercentageClose, Comment, CommentValue, Instant)
Exits A Short Order Based On A Specified Condition
Parameters:
ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Short"
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Instant (bool) : Is For Exit Execution Type, Defval = false
Returns: Void
BrokerCheck(Broker)
Checks Traded Broker With Current Loaded Chart Broker
Parameters:
Broker (string) : Is The Current Broker That Is Traded
Returns: Bool - True If Current Traded Broker Is Same As Loaded Chart Broker
OpenPC(LicenseID, OrderType, UseLimit, LimitPrice, SymbolPrefix, Symbol, SymbolSuffix, Risk, SL, TP, OrderComment, Spread)
Compiles Given Parameters Into An Alert String Format To Open Trades Using Pine Connector
Parameters:
LicenseID (string) : Is The Users PineConnector LicenseID
OrderType (int) : Is The Desired OrderType To Open
UseLimit (bool) : Is If We Want To Enter The Position At Exactly The Previous Closing Price
LimitPrice (float) : Is The Limit Price Of The Trade (Only For Pending Orders)
SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
Symbol (string) : Is The Traded Symbol
SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
Risk (float) : Is The Trade Risk Per Trade / Fixed Lot Sizing
SL (float) : Is The Trade SL In Price / In Pips
TP (float) : Is The Trade TP In Price / In Pips
OrderComment (string) : Is The Executed Trade Comment
Spread (float) : is The Maximum Spread For Execution
Returns: String - Pine Connector Order Syntax Alert Message
ClosePC(LicenseID, OrderType, SymbolPrefix, Symbol, SymbolSuffix)
Compiles Given Parameters Into An Alert String Format To Close Trades Using Pine Connector
Parameters:
LicenseID (string) : Is The Users PineConnector LicenseID
OrderType (int) : Is The Desired OrderType To Close
SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
Symbol (string) : Is The Traded Symbol
SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
Returns: String - Pine Connector Order Syntax Alert Message
//====================================================================================================================================================
// Custom Backtesting Calculation Functions
//====================================================================================================================================================
CalculatePNL(EntryPrice, ExitPrice, LotSize, ConversionRate)
Calculates Trade PNL Based On Entry, Eixt & Lot Size
Parameters:
EntryPrice (float) : Is The Trade Entry
ExitPrice (float) : Is The Trade Exit
LotSize (float) : Is The Trade Sizing
ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
Returns: Float - The Current Trade PNL
UpdateBalance(PrevBalance, PNL)
Updates The Previous Ginve Balance To The Next PNL
Parameters:
PrevBalance (float) : Is The Previous Balance To Be Updated
PNL (float) : Is The Current Trade PNL To Be Added
Returns: Float - The Current Updated PNL
CalculateSlpComm(PNL, MaxRate)
Calculates Random Slippage & Commisions Fees Based On The Parameters
Parameters:
PNL (float) : Is The Current Trade PNL
MaxRate (float) : Is The Upper Limit (In Percentage) Of The Randomized Fee
Returns: Float - A Percentage Fee Of The Current Trade PNL
UpdateDD(MaxBalance, Balance)
Calculates & Updates The DD Based On Its Given Parameters
Parameters:
MaxBalance (float) : Is The Maximum Balance Ever Recorded
Balance (float) : Is The Current Account Balance
Returns: Float - The Current Strategy DD
CalculateWR(TotalTrades, LongID, ShortID)
Calculate The Total, Long & Short Trades Win Rate
Parameters:
TotalTrades (int) : Are The Current Total Trades That The Strategy Has Taken
LongID (string) : Is The Order ID Of The Long Trades Of The Strategy
ShortID (string) : Is The Order ID Of The Short Trades Of The Strategy
Returns: Tuple Of Long WR%, Short WR%, Total WR%, Total Winning Trades, Total Losing Trades, Total Long Trades & Total Short Trades
CalculateAvgRRR(WinTrades, LossTrades)
Calculates The Overall Strategy Avg Risk Reward Ratio
Parameters:
WinTrades (int) : Are The Strategy Winning Trades
LossTrades (int) : Are The Strategy Losing Trades
Returns: Float - The Average RRR Values
CAGR(StartTime, StartPrice, EndTime, EndPrice)
Calculates The CAGR Over The Given Time Period © TradingView
Parameters:
StartTime (int) : Is The Starting Time Of The Calculation
StartPrice (float) : Is The Starting Price Of The Calculation
EndTime (int) : Is The Ending Time Of The Calculation
EndPrice (float) : Is The Ending Price Of The Calculation
Returns: Float - The CAGR Values
//====================================================================================================================================================
// Custom Plot Functions
//====================================================================================================================================================
EditLabels(LabelID, X1, Y1, Text, Color, TextColor, EditCondition, DeleteCondition)
Edit / Delete Labels
Parameters:
LabelID (label) : Is The ID Of The Selected Label
X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
Text (string) : Is The Text Than Wants To Be Written In The Label
Color (color) : Is The Color Value Change Of The Label Text
TextColor (color)
EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
Returns: Void
EditLine(LineID, X1, Y1, X2, Y2, Color, EditCondition, DeleteCondition)
Edit / Delete Lines
Parameters:
LineID (line) : Is The ID Of The Selected Line
X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
X2 (int) : Is The X2 Coordinate IN BARINDEX Xloc
Y2 (float) : Is The Y2 Coordinate IN PRICE Yloc
Color (color) : Is The Color Value Change Of The Line
EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
Returns: Void
//====================================================================================================================================================
// Custom Display Functions (Using Tables)
//====================================================================================================================================================
FillTable(TableID, Column, Row, Title, Value, BgColor, TextColor, ToolTip)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
Column (int) : Is The Current Column Of The Table That Wants To Be Edited
Row (int) : Is The Current Row Of The Table That Wants To Be Edited
Title (string) : Is The String Title Of The Current Cell Table
Value (string) : Is The String Value Of The Current Cell Table
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
ToolTip (string) : Is The ToolTip Of The Current Cell In The Table
Returns: Void
DisplayBTResults(TableID, BgColor, TextColor, StartingBalance, Balance, DollarReturn, TotalPips, MaxDD)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
StartingBalance (float) : Is The Account Starting Balance
Balance (float)
DollarReturn (float) : Is The Account Dollar Reture
TotalPips (float) : Is The Total Pips Gained / loss
MaxDD (float) : Is The Maximum Drawdown Over The Backtesting Period
Returns: Void
DisplayBTResultsV2(TableID, BgColor, TextColor, TotalWR, QTCount, LongWR, ShortWR, InitialCapital, CumProfit, CumFee, AvgRRR, MaxDD, CAGR, MeanDD)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
TotalWR (float) : Is The Strategy Total WR In %
QTCount (int) : Is The Strategy Questionable Trades Count
LongWR (float) : Is The Strategy Total WR In %
ShortWR (float) : Is The Strategy Total WR In %
InitialCapital (float) : Is The Strategy Initial Starting Capital
CumProfit (float) : Is The Strategy Ending Cumulative Profit
CumFee (float) : Is The Strategy Ending Cumulative Fee (Based On Randomized Fee Assumptions)
AvgRRR (float) : Is The Strategy Average Risk Reward Ratio
MaxDD (float) : Is The Strategy Maximum DrawDown In Its Backtesting Period
CAGR (float) : Is The Strategy Compounded Average GRowth In %
MeanDD (float) : Is The Strategy Mean / Average Drawdown In The Backtesting Period
Returns: Void
//====================================================================================================================================================
// Custom Pattern Detection Functions
//====================================================================================================================================================
BullFib(priceLow, priceHigh, fibRatio)
Calculates A Bullish Fibonacci Value (From Swing Low To High) © ZenAndTheArtOfTrading
Parameters:
priceLow (float)
priceHigh (float)
fibRatio (float)
Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
BearFib(priceLow, priceHigh, fibRatio)
Calculates A Bearish Fibonacci Value (From Swing High To Low) © ZenAndTheArtOfTrading
Parameters:
priceLow (float)
priceHigh (float)
fibRatio (float)
Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
GetBodySize()
Gets The Current Candle Body Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Body Size IN POINTS
GetTopWickSize()
Gets The Current Candle Top Wick Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Top Wick Size IN POINTS
GetBottomWickSize()
Gets The Current Candle Bottom Wick Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Bottom Wick Size IN POINTS
GetBodyPercent()
Gets The Current Candle Body Size As A Percentage Of Its Entire Size Including Its Wicks © ZenAndTheArtOfTrading
Returns: The Current Candle Body Size IN PERCENTAGE
GetTopWickPercent()
Gets The Current Top Wick Size As A Percentage Of Its Entire Body Size
Returns: Float - The Current Candle Top Wick Size IN PERCENTAGE
GetBottomWickPercent()
Gets The Current Bottom Wick Size As A Percentage Of Its Entire Bodu Size
Returns: Float - The Current Candle Bottom Size IN PERCENTAGE
BullishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Engulfing Candle
Parameters:
Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Engulfing Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Engulfing Candle
BearishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bearish Engulfing Candle
Parameters:
Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Engulfing Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Engulfing Candle
Hammer(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod)
Checks If The Current Bar Is A Hammer Candle
Parameters:
Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
Star(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod)
Checks If The Current Bar Is A Hammer Candle
Parameters:
Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
Doji(MaxWickSize, MaxBodySize, DojiType, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Doji Candle
Parameters:
MaxWickSize (float) : To Specify The Maximum Lenght Of Its Upper & Lower Wick, Defval = 2
MaxBodySize (float) : To Specify The Maximum Lenght Of Its Candle Body IN PERCENT, Defval = 0.05
DojiType (int)
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Doji Candle
BullishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Harami Candle
Parameters:
Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Harami Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Harami Candle
BearishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Harami Candle
Parameters:
Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Harami Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Harami Candle
//====================================================================================================================================================
// Custom Time Functions
//====================================================================================================================================================
BarInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session © ZenAndTheArtOfTrading
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls within the given time session
BarOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session © ZenAndTheArtOfTrading
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls outside the given time session
DateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range © ZenAndTheArtOfTrading
Parameters:
startTime (int)
endTime (int)
Returns: A boolean - true if the current bar falls within the given dates
DayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze © ZenAndTheArtOfTrading
Parameters:
monday (bool)
tuesday (bool)
wednesday (bool)
thursday (bool)
friday (bool)
saturday (bool)
sunday (bool)
Returns: A boolean - true if the current bar's day is one of the given days
AUSSess()
Checks If The Current Australian Forex Session In Running
Returns: Bool - True If Currently The Australian Session Is Running
ASIASess()
Checks If The Current Asian Forex Session In Running
Returns: Bool - True If Currently The Asian Session Is Running
EURSess()
Checks If The Current European Forex Session In Running
Returns: Bool - True If Currently The European Session Is Running
USSess()
Checks If The Current US Forex Session In Running
Returns: Bool - True If Currently The US Session Is Running
UNIXToDate(Time, ConversionType, TimeZone)
Converts UNIX Time To Datetime
Parameters:
Time (int) : Is The UNIX Time Input
ConversionType (int) : Is The Datetime Output Format, Defval = DD-MM-YYYY
TimeZone (string) : Is To Convert The Outputed Datetime Into The Specified Time Zone, Defval = Exchange Time Zone
Returns: String - String Of Datetime
Three-Day Rolling PivotThe three-day rolling pivot is another pivot concept,
which may be used by intermediate positions, for several days or even weeks.
It can be utilized in many ways, such as to determine an entry point or trailing stop.
As the name suggests, this pivot is based on the last three days.
I learned this concept of the book "The logical Trader" by Mark Fisher.
Kudos go to him!
My version of the Three-Day Rolling Pivot uses actual data!
And all similar scripts I have found so far calculate future data and don't take into account the original data.
I hope this script will help some people to do some better decisions.
And I am pleased to get some advice to make this script even better!
Future data vs original data
Pine Script v5 Reference Manual:
Merge strategy for the requested data position... This merge strategy can lead to undesirable effect of getting data from "future" on calculation on history. This is unacceptable in backtesting strategies, but can be useful in indicators.
e2e4 on Stack Overflow said:
Pine v1-v2's security() function is using the lookahead parameter by default, which could be modified in v3-v5...
stackoverflow.com
I haven't found a script which put this into account jet.
I leave this option available for people that wanna more speculated data. But it's disabled by default.
Long/Short Example
You can enter Long when the market cross over the upper line (default color is green) and you should put your trailing stop 1-5 ticks below the lower line (default color is red).
The opposite when Shorting, then the market has to cross down the lower line and your trailing stop should be 1-5 ticks above the upper line.
How does this script work:
First it fetches the highest high of ...
yesterday,
the day before yesterday,
and the day before that.
After that the script looks for the highest high of all three.
Next it does the same for previous lowest low.
Last but not least, it fetches the closing price of the last day.
After that it adds all three prices together and divide them by three.
This result in a three day pivot price.
Then it adds the highest high and lowest low of the three last days and divide it by two.
This gives us the second number we need to calculate the differential.
The differential is the gap between the three day pivot price and the second number.
Sometimes the second number is bigger than the three day pivot price so I took that into account too. Other wise the colors plotted would be on the wrong site.
Finally, the script is rounding the numbers to the nearest minimum tick of that security.
MPF EMA Cross Strategy (8~13~21) by Market Pip FactoryThis script is for a complete strategy to win maximum profit on trades whilst keeping losses at a minimum, using sound risk management at no greater than 1.5%
The 3x EMA Strategy uses the following parameters for trade activation and closure.
1/ Daily Time Frame for trend confirmation
2/ 4 Hourly Time Frame for trend confirmation
3/ 1 Hourly Time Frame for trend confirmation AND trade execution
4/ 3x EMAs (Exponential Moving Averages)
* EMA#1 = 8 EMA (Red Color)
* EMA#2 = 13 EMA (Blue Color)
* EMA#3 = 21 EMA (Orange Color)
5/ Fanning of all 3x EMAs and CrossOver/CrossUnder for Trend Confirmation
6/ Price Action touching an 8 EMA for trade activation
7/ Price Action touching a 21 EMA for trade cancellation BEFORE activation
* For LONG trades: 8 EMA would be ABOVE 21 EMA
* For SHORT trades: 8 EMA would be BELOW 21 EMA
* For trade Cancellation, price action would touch the 21 EMA before trade is activated
* For trade Entry, price action would touch 8 EMA
Once trigger parameter is identified, entry is found by:
a) Price action touches 8 EMA (Candle must Close for confirmed Trade preparation)
b) Trade preparation can be cancelled before trade is activated if price action touches 21 EMA
c) Trailing Stop Loss can be used (optional) by counting back 5 candles from current candle
CLOSURE of a Trade is identified by:
e) 8 EMA crossing the 21 EMA, then close trade, no matter LONG or SHORT
f) Trail Stop Loss
IMPORTANT:
g) No more than ONE activated trade per EMA crossover
h) No more than ONE active trade per pair
NOTE: This strategy is to be used in conjunction with Cipher Twister (my other indicator) to reduce trades on
sideways price action and market trends for super high win ratio.
NOTE: Enabling of LONGs and SHORTs Via Cipher Twister is done by using the previous
green or red dot made. Additionally, when the trend changes, so do the dot's validity based
on being above or below the 0 centerline.
----------------------------
Strategy and Bot Logic
----------------------------
.....::: FOR SHORT TRADES ONLY :::.....
The Robot must use the following logic to enable and activate the SHORT trades:
Parameters:
$(crossunder)=8EMA,21EMA=Bearish $(crossover)=8EMA,21EMA=Bullish $entry=SELL STOP ORDER (Short)
$EMA#1 = 8 EMA (Red Color) $EMA#2 = 13 EMA (Blue Color) $EMA#3 = 21 EMA (Orange Color)
Strategy Logic:
1/ Check Daily Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=daily and trend=$(crossunder) then goto 2/ *Means: crossunder = ema21 > ema8
$(chart)=daily and trend=$(crossover) then stop (No trades) *Means: crossover = ema8 > ema21
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
2/ Check 4 Hourly Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=4H and trend=$(crossunder) then goto 3/ *Means: crossunder = ema21 > ema8
$(chart)=4H and trend=$(crossover) then stop (No trades) *Means: crossover = ema8 > ema21
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
3/ 1 Hourly Time Frame for trend confirmation AND trade execution if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=1H and trend=$(crossunder) then goto 4/ *Means: crossunder = ema21 > ema8
$(chart)=1H and trend=$(crossover) then stop (No trades) *Means: crossover = ema8 > ema21
4/ Trade preparation:
* if Next (subsequent) candle touches 8EMA, then set STOP LOSS and ENTRY
* $stoploss=3 pips ABOVE current candle HIGH
* $entry=3 pips BELOW current candle LOW
5/ Trade waiting (ONLY BEFORE entry is hit and trade activated):
* if price action touches 21 EMA then cancel trade and goto 1/
Note: Once trade is active this function does not apply !
6/ Trade Activation:
* if price activates/hits ENTRY price, then bot activates trade SHORTs market
7/ Optional Trailing stop:
* if active, then trailing stop 3 pips ABOVE previous HIGH of previous 5th candle
or * Move Stop Loss to Break Even after $X number of pips
NOTE: This means count back and apply accordingly to the 5th previous candle from current candle.
NOTE: This function is switchable. 0=off and 1=on(active). Default = 0 (off)
8/ Trade Close ~ Take Profit:
* Only TP when
$(chart)=1H and trend=$(crossover) then close trade ~ Or obviously if Stop Loss is hit if 7/ is activated.
----------END FOR SHORT TRADES LOGIC----------
.....::: FOR LONG TRADES ONLY :::.....
The Robot must use the following logic to enable and activate the LONG trades:
Parameters:
$(crossunder)=8EMA,21EMA=Bearish $(crossover)=8EMA,21EMA=Bullish $entry=BUY STOP ORDER (Long)
$EMA#1 = 8 EMA (Red Color) $EMA#2 = 13 EMA (Blue Color) $EMA#3 = 21 EMA (Orange Color)
Strategy Logic:
1/ Check Daily Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=daily and trend=$(crossover) then goto 2/ *Means: crossover = ema8 > ema21
$(chart)=daily and trend=$(crossunder) then stop (No trades) *Means: crossunder = ema21 > ema8
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
2/ Check 4 Hourly Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=4H and trend=$(crossover) then goto 3/ *Means: crossover = ema8 > ema21
$(chart)=4H and trend=$(crossunder) then stop (No trades) *Means: crossunder = ema21 > ema8
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
3/ 1 Hourly Time Frame for trend confirmation AND trade execution if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=1H and trend=$(crossover) then goto 4/ *Means: crossover = ema8 > ema21
$(chart)=1H and trend=$(crossunder) then stop (No trades) *Means: crossunder = ema21 > ema8
4/ Trade preparation:
* if Next (subsequent) candle touches 8EMA, then set STOP LOSS and ENTRY
* $stoploss=3 pips BELOW current candle LOW
* $entry=3 pips ABOVE current candle HIGH
5/ Trade waiting (ONLY BEFORE entry is hit and trade activated):
* if price action touches 21 EMA then cancel trade and goto 1/
Note: Once trade is active this function does not apply !
6/ Trade Activation:
* if price activates/hits ENTRY price, then bot activates trade LONGs market
7/ Optional Trailing stop:
* if active, then trailing stop 3 pips BELOW previous LOW of previous 5th candle
or * Move Stop Loss to Break Even after $X number of pips
NOTE: This means count back and apply accordingly to the 5th previous candle from current candle.
NOTE: This function is switchable. 0=off and 1=on(active). Default = 0 (off)
8/ Trade Close ~ Take Profit:
* Only TP when
$(chart)=1H and trend=$(crossunder) then close trade ~ Or obviously if Stop Loss is hit if 7/ is activated.
----------END FOR LONG TRADES LOGIC----------
IMPORTANT:
* If an existing trade is already open for that same pair, & price action touches 8EMA, do NOT open a new trade..
* bot must continuously check if a trade is currently open on the pair that triggers
* New trades are to be only opened if there is no active trade opened on current pair.
* Only 1 trade per pair rule !
* 5 simultaneous open trades (not same pairs) default = 5 but value can be changed accordingly.
* Maximum risk management must not exceed 1.5% on lot size
*** Some features are not yet available autoated, they will be added in due course in subsequent version updates ***
Bjorgum AutoTrailOne Time Trade Risk Management
Incorporating the new interactive feature, this script is meant as a one time trailing stop for the active trader to manage positional risk of an ongoing trade. As a crypto trader or Fx trader, many may find themselves in a position late into the evening, or perhaps daily life is calling while a trade progresses in their favor. Adding a trailing stop to a position thats trending can help to keep you in the trade and lock in gains if things turn around when you are unable to react.
To use the trail, the user would add the script to the chart. Once added, a set of crosshairs will appear allowing the user to choose a point to begin. Often choosing to start a trail from a swing high/ low can be an ideal option. This tends to provide some protection for a stop by placing it under support for a long trade or above resistance for a short trade.
Price based trail
The trail will automatically plot and the offset is a factor of the distance from price action selected by the crosshairs. If placed above price action the script will plot a short trail, if placed below it will trail for a long position.
Additionally, there are several other trail types other than price based. There is also percent based, which offsets the trail as a percent from close. A hard stop is placed at the cross hair value, then once the distance is exceeded by the percentage specified, the trail begins.
There are 2 more volatility based trails. There is a PSAR trail which can provide quicker and tighter stops that accelerate with the trend locking in gains faster, and an ATR trail that keeps a distance from price action as a function of volatility. Volatility levels can be adjusted from the menu.
Volatility based trail (ATR)
Volatility based trail (PSAR)
Lastly, within the code for more the more technical savvy, is some starting setups for string alerts to be sent to exchanges via 3rd party or custom API applications. Some string manipulation is required for specific providers to meet their requirements, but there is some building block alerts that will take the ticker symbol, recognize the asset your trading (Fx, Crypto, etc) and take input quantity or exchange names from the settings via inputs.
Complex strings can be built to perform almost any trade related task when to comes to alerts via web hook. A little setup this way with some technology to back your system can mean a semi-automated half man, half machine setup that actually manages your trail stop while you cannot. For those that don’t go this far, there is some basic alert functionality that well trigger when a trail is hit so you can react and make a decision.
Please note that for now, interactive mode is engaged only when the script is added to the chart. Additional stops, or for adjustments to be made it is best to add a new version. Also as real trades could be at play managing an actual position, alerts are designed to go off only once to ensure no duplicate orders are sent meaning alerts are not reoccurring. Once an alert is triggered, a new trail is to be set up.
A modified version of the TradingView built in SAR equation was used in this script. To provide the value of the SAR on the stop candle, it was necessary to alter the equation to extract this value as the regular SAR “flips” at this point. Thank you to TradingView for supplying access to the built in formula so that this SAR could behave the same as the built-in function outside of these alterations
Example of SAR value maintained in trigger candle
Cheers and happy trading.